ISAT with segment anything做语义分割数据集
时间: 2025-07-12 13:50:56 浏览: 15
### 使用 ISAT 和 Segment Anything 创建语义分割数据集
为了利用 ISAT 工具和 Segment Anything 模型生成高质量的语义分割数据集,可以按照以下方法操作:
#### 数据准备阶段
在开始之前,需要准备好原始图像集合以及对应的标注类别列表。Segment Anything 可以用于快速生成初始分割掩码[^1],而 ISAT 则是一个强大的交互式工具,能够进一步优化这些掩码并将其转换为适合机器学习框架使用的标准格式[^2]。
#### 自动化初步分割
通过调用 Meta 提供的 Segment Anything API 或者预训练模型接口,在每张图片上运行推理过程,得到一系列可能属于前景的目标实例及其边界框信息。此步骤会输出多个二值化的蒙版文件作为候选区域建议。
#### 手工校正与分类标记
导入上述自动生成的结果至 ISAT 软件当中,开启图形界面模式下的人机协作流程。此时用户可以根据实际需求调整各个独立物体轮廓形状直至满意为止;与此同时还需要指派恰当的标签名称给每一个修正后的片段表示其所属的具体种类。
对于大规模项目而言,考虑到效率问题,也可以先批量处理简单样本后再集中精力解决复杂情况下的误检漏报现象。
#### 导出标准化结构体
最后一步就是把经过充分润饰之后的数据导成通用交换形式比如 COCO JSON Schema 或 Pascal VOC XML Document ,以便后续参与深度神经网络训练环节前完成最终整理工作 。值得注意的是应当合理划分好训练子集、验证子集还有测试保留部分的比例关系来评估算法性能表现是否稳定可靠[^3]。
```python
import json
from segment_anything import SamAutomaticMaskGenerator, sam_model_registry
def generate_masks(image_path):
device = "cuda"
model_type = "vit_h"
checkpoint_url = "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth"
sam = sam_model_registry[model_type](checkpoint=checkpoint_url).to(device=device)
mask_generator = SamAutomaticMaskGenerator(sam)
image = cv2.imread(image_path)
masks = mask_generator.generate(image)
return masks
masks = generate_masks("example.jpg")
with open('output.json', 'w') as f:
json.dump(masks, f)
```
阅读全文
相关推荐


















