README.md 2.56 KB
Newer Older
suily's avatar
suily committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# SAM2

## 项目简介

Segment Anything Model 2 (SAM 2)是一个用于解决图像和视频中可提示视觉分割问题的基础模型。将 SAM 扩展到视频领域,将图像视为单帧视频。该模型采用简单的 Transformer 架构,并利用流式内存实现实时视频处理。

---

## 环境部署

### 1. 拉取镜像

```bash
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.5.1-ubuntu22.04-dtk25.04.2-py3.10
```

### 2. 创建容器

```bash
docker run -it \
--network=host \
--hostname=localhost \
--name=sam2 \
-v /opt/hyhal:/opt/hyhal:ro \
-v $PWD:/workspace \
--ipc=host \
--device=/dev/kfd \
--device=/dev/mkfd \
--device=/dev/dri \
--shm-size=512G \
--privileged \
--group-add video \
--cap-add=SYS_PTRACE \
-u root \
--security-opt seccomp=unconfined \
image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.5.1-ubuntu22.04-dtk25.04.2-py3.10 \
/bin/bash
```

---

## 测试步骤

### 1. 拉取代码

```bash
git clone http://developer.sourcefind.cn/codes/bw-bestperf/sam2.git
cd sam2
```

### 2. 安装依赖

```bash
python setup.py install
pip install hydra-core iopath -i https://pypi.tuna.tsinghua.edu.cn/simple
```

修改代码:

```bash
vim /usr/local/lib/python3.10/dist-packages/sam2/modeling/sam2_base.py

# 在第20行添加:
MaskDecoder = torch.compile(MaskDecoder, mode="max-autotune-no-cudagraphs")
PromptEncoder = torch.compile(PromptEncoder, mode="max-autotune-no-cudagraphs")
TwoWayTransformer = torch.compile(TwoWayTransformer, mode="max-autotune-no-cudagraphs")
```

### 3. 下载模型

```bash
cd checkpoints
bash download_ckpts.sh
cd ..
```

---

## 测试代码示例(单卡测试)

修改sam2/sam2/benchmark_image-warmup.py中的权重、yaml文件、数据集路径:

```bash
cd sam2
vim benchmark_image-warmup.py

# 将以下变量修改为本地路径
sam2_checkpoint = "/path/sam2/checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
images_dir = "/path/sam2/coco_mini/images/val2017"
```

运行单卡推理:

```bash
python benchmark_image-warmup.py
```

---

## 贡献指南

欢迎对 SAM2 项目进行贡献!请遵循以下步骤:

1. Fork 本仓库,并新建分支进行功能开发或问题修复。
2. 提交规范的 commit 信息,描述清晰。
3. 提交 Pull Request,简述修改内容及目的。
4. 遵守项目代码规范和测试标准。
5. 参与代码评审,积极沟通改进方案。

---

## 许可证

本项目遵循 MIT 许可证,详见 [LICENSE](./LICENSE) 文件。

---

感谢您的关注与支持!如有问题,欢迎提交 Issue 或联系维护团队。