GitHub上的 ISAT_with_segment_anything 是一款基于 segment-anything 的交互式半自动图像分割标注工具,最新发布版本为v1.3.5,license为Apache 2.0。
Windows上环境配置,本机已安装Anaconda:
(1).cpu模式,依次执行如下命令:
conda create -n isat_env python=3.8
conda activate isat_env
pip install isat-sam
(2).cuda模式,依次执行如下命令:本机已安装cuda 11.8
conda create -n isat_env_cuda python=3.8
conda activate isat_env_cuda
conda install -c pytorch -c nvidia -c conda-forge pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=11.8
pip install isat-sam
输入isat-sam,启动isat-sam,界面如下图所示:点击"帮助"/"Help" --> "语言"/"Language",可切换中英文;点击"帮助" --> "快捷键",显示可用的快捷键
1. 支持的模型如下图所示:点击"SAM" --> "模型管理",下载预训练模型,点击对应模型的"download",此时变为"downloading",下载后变为"delete";下载后的模型存放在虚拟环境(如isat_env_cuda)目录下的Lib/site-packages/ISAT/checkpoints目录下;勾选已下载的模型,ISAT则会自动加载此模型,可通过勾选不同的模型,进行切换;也可使用迅雷下载对应模型
2. 加载需要标注的图像集:"文件" --> "图片文件夹"
3. 类别设置:如下图所示
(1).可删除已有类别,也可添加新类别,调整后需点击"应用"按钮才会生效
(2).点击"导出",可将调整后的类别导出到本地的yaml文件中
(3).点击"导出",可导入yaml文件中的类别
4. 设置:"文件" --> "设置":
(1).自动保存:勾选后,标注和修改时,自动保存
(2).轮廓模式:
只保存外轮廓:对于不需要进行镂空处理的数据时,用此模式。
只保存最大轮廓:针对存在多个轮廓的情况,只保留拥有最多顶点的轮廓。如果半自动标注时存在很多干扰,可以通过此模式,减少干扰,提升标注效率。
保存所有轮廓:包含内轮廓与外轮廓。内轮廓类别自动设置为背景类。对于需要镂空的目标,可以使用此模式。
5. 快捷键:"帮助" --> "快捷键",如下图所示
A:上一张图像
D:下一张图像
Q:Segment anything点提示,鼠标此时变为"+",此时点击鼠标左键开始自动标注,可多次点击鼠标左键,存在误选区域时点击鼠标右键:注:标注前需要先选择正确的类别;若标注类别错误或标注结果不理想,可通过右侧的"标注"进行调整,如重新编辑类别或删除
C:标注多边形,按住鼠标左键拖动鼠标,当标注完一个目标时按E键
E:当一张图像上有多个目标时,标注好一个目标后按下E键,再从新开始标注其它目标
Z:若标注目标时出现错误操作,在未按E键前,按Z键可回退到上一步
6. 预览当前标注结果:点击"位图按钮",实时预览当前标注结果,如下图所示
7. 标注细节检查:以组id逐个切换目标,切换的同时,会自适应到目标大小,便于检查标注细节,如下图所示
8. 标注结果导出:"工具" --> "数据转换":ISAT生成的是.json文件,如将其转换为YOLO的.txt文件,如下图所示,还会生成一个classification.txt文件,里面记录着类别名:注:cpu模式和cuda模式,生成的.txt中,类别索引不同:cpu模式索引从1开始;而cuda模式索引从0开始
9. 遮挡关系调整:对于存在重叠部分的目标,通过"置顶"或"置底"调整遮挡关系。
10.状态栏信息:实时显示显存占用、鼠标所指像素在图片中的位置与像素值。
更多使用说明,参考:https://isat-samzh.readthedocs.io/zh-cn/latest/index.html