detectron2 docker
时间: 2025-01-13 15:52:50 浏览: 36
### 使用 Docker 运行 Detectron2
为了使用 Docker 容器来运行 Detectron2,需先确认 `/var/run/docker.sock` 的用户组设置正确。如果该文件不属于 `docker` 用户组,则应通过命令 `chgrp docker /var/run/docker.sock` 修改其所属用户组[^1]。
安装并配置好 Docker 后,可以按照如下方法启动带有 Detectron2 配置的容器:
#### 获取官方镜像
首先拉取包含 Detectron2 和其他依赖项在内的预构建 Docker 映像:
```bash
docker pull facebookresearch/detectron2:latest
```
#### 创建数据卷映射
创建本地目录用于存储训练模型权重和其他持久化资源,并将其挂载到容器内相应路径下以便访问这些资料。
假设有一个名为 `mydata` 的文件夹用来保存自定义的数据集和输出结果:
```bash
mkdir mydata
```
#### 启动交互式会话
利用之前准备好的环境变量以及参数选项启动一个新的 Bash shell 实例,在其中执行后续操作:
```bash
docker run -it --rm \
--gpus all \
-v $(pwd)/mydata:/workspace/mydata \
-e NVIDIA_VISIBLE_DEVICES=0 \
-e CUDA_CACHE_MAXSIZE=2147483648 \
facebookresearch/detectron2 bash
```
上述命令中的 `-v` 参数指定了主机上的当前工作目录下的 `mydata` 文件夹被绑定到了容器内的 `/workspace/mydata` 路径;而 `--gpus all` 表明此容器能够访问所有的 GPU 设备。对于仅有一张显卡的情况来说,可以通过设置 `NVIDIA_VISIBLE_DEVICES` 来指定具体使用的设备编号。
进入容器之后就可以直接调用 Python API 或者 CLI 工具来进行目标检测任务了。例如,下面是一个简单的例子展示如何加载预训练模型并对单幅图像进行推理预测:
```python
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
import cv2
cfg = get_cfg()
cfg.merge_from_file("/detectron2_repo/configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml")
cfg.MODEL.WEIGHTS = "detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl"
predictor = DefaultPredictor(cfg)
im = cv2.imread("/workspace/mydata/input.jpg") # 替换成实际图片位置
outputs = predictor(im)
print(outputs["instances"].pred_classes)
```
阅读全文
相关推荐

















