使用Docker安装detectron2

42 篇文章 1 订阅
21 篇文章 1 订阅
本文详细指导了如何在Windows系统上通过Docker安装Detectron2,包括拉取CUDA镜像,配置依赖环境,安装Miniconda3,以及设置pip源并安装所需的Python库和Detectron2本身。
摘要由CSDN通过智能技术生成

Detectron2 是一个用于目标检测、分割和其他视觉识别任务的平台。

Detectron2 官网安装教程是基于 linux 安装的,在 windows 上直接安装有很多问题,下面采用 docker 方式在 windows 上安装。

拉取cuda116镜像

docker pull nvcr.io/nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04

创建容器

docker run --gpus=all  -it --name ernerf -v D:\Projects\ER-NeRF:/ernerf nvcr.io/nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04

安装依赖环境

apt-get update -yq --fix-missing \
 && DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
    pkg-config \
    wget \
    cmake \
    curl \
    git \
    vim

apt update
apt install gcc
apt install g++

安装Miniconda3

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh -b -u -p ~/miniconda3
~/miniconda3/bin/conda init
source ~/.bashrc

创建环境

conda create -n detectron python=3.10
conda activate detectron

安装依赖库

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install cython opencv-python-headless

安装detectron2

git clone https://github.com/facebookresearch/detectron2.git

pip install -e detectron2

调用示例

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

# 加载配置文件
cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5  # 设置阈值
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml")

import torch
if not torch.cuda.is_available():
    cfg.MODEL.DEVICE = "cpu"

# 创建预测器
predictor = DefaultPredictor(cfg)

# 加载图像
im = cv2.imread("./image.jpg")

# 进行预测
outputs = predictor(im)

# 中继资料/标记值
all_things=MetadataCatalog.get(cfg.DATASETS.TRAIN[0]).thing_classes
preds=[all_things[x] for x in outputs['instances'].pred_classes]
print(preds)

# 可视化预测结果
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
v = v.draw_instance_predictions(outputs["instances"].to("cpu"))

cv2.imwrite('./output.jpg', v.get_image()[:, :, ::-1])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值