文章目录
- 一、半自动标注
- 二、缺点
- 三、安装方法
- 1、 python版本要求
- 2、下载playground
- 3、SAM安装
- 4、SAM权重下载
- 5、安装label-studio-ml
- 6、启动SAM接口
- 7、SAM启动日志
- 8、安装并启动label-studio
- 9、label-studio启动日志
- 四、半自动标注使用方法
- 1、创建project并导入数据
- 2、标签设置
- 3、大模型设置
- 4、标注
- 5、标注物导出
- 五、总结
最近在做一个分割任务,需要手动标注,标注了几张,感觉实在是麻烦,枯燥、费时间,所以想试下半自动标注。花了老奴一天的时间安装环境、配置等,发现…其实,也不太好用,能理解为什么自动标注无法推广使用了。你如果对半自动标注感兴趣的话,可以往下看看。
一、半自动标注
我们知道,分割任务标注的数据,需要沿着物体边界框选物体,这时候需要用鼠标点击多个点,形成一个多边形框住目标。相对于目标检测拉取一个目标框,分割的标注是更为耗时的。
SAM 源自于 2023 年 Meta 的 Segment Anything (SA) 项目。该项目发现在 NLP 和 CV 领域中出现的基础模型表现出较强的性能,它是一种最先进的图像分割模型。
使用Label Studio结合SAM大模型,实现半自动标注,通过手动点击(keypoint)或者画框,模型自动分割选中区域,与手动标注对比,不用点多个点、不用对准目标边界。经过测试,该半自动标注工具适用目标与背景差别较大的物体,目标和边界较难区分的,自动分割效果不佳。
标注效果如图二,螺丝钉含有位移线,我的标注任务是将位移线分割出来。
二、缺点
试用该工具后,感觉不太好用。主要是因为:
(1) 安装麻烦:该工具涉及到Label Studio和SAM模型的安装、配置、启动
(2) 速度慢:需要用模型边标注边推理,SAM模型使用显卡推理,速度仍然比较慢、容易卡,给我的感觉是不灵敏、容易卡顿
(3) 硬件要求高:我使用自己的笔记本电脑安装,内存报错,且用cpu推理,速度很慢
三、安装方法
如果你的设备硬件better than me,也想试用下这个标注工具。以下是安装步骤。
1、 python版本要求
3.8及以上
2、下载playground
Github页面直接Download zip,解压,有一个label_anything目录(图三),用于后面启动SAM模型。playground链接
3、SAM安装
这里我使用离线安装的方法,同样Github直接页面Download zip,解压,进入解压的文件夹,运行pip install -e . 即可安装SAM。SAM链接
4、SAM权重下载
SAM有三个权重,代表不同大小参数的SAM,我使用的是sam_vit_b_01ec64.pth,下载放入label_anything目录
https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth
https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth
https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
5、安装label-studio-ml
pip install label-studio-ml
6、启动SAM接口
进入playground的label_anything目录,在启动命令指定启动设备,可以设置为cpu启动或者gpu启动。
cpu启动:
label-studio-ml start sam --port 8003 --with sam_config=vit_b sam_checkpoint_file=./sam_vit_b_01ec64.pth out_poly=True out_mask=True out_bbox=True device=cpu
gpu启动:
label-studio-ml start sam --port 8003 --with sam_config=vit_b sam_checkpoint_file=.\sam_vit_b_01ec64.pth out_poly=True out_mask=True out_bbox=True device=cuda:0
启动命令参数说明:
- port 8003:设置端口,随便设,不冲突就行了
- sam_config=vit_b,模型权重相对应
- sam_checkpoint_file=./sam_vit_b_01ec64.pth,权重路径
- out_mask=True,表示输出的是掩码
7、SAM启动日志
终端启动日志如图,可以看到启动的url
8、安装并启动label-studio
pip install label-studio-ml
label-studio start
9、label-studio启动日志
label-studio启动日志也有一个url,自动打开label studio的界面,需要注册账号再登录
四、半自动标注使用方法
1、创建project并导入数据
点击create创建项目并导入数据
2、标签设置
点击setting,点击Labeling Interface,设置标签,将下面的一段代码复制进去,修改成自己的类别
<View>
<Image name="image" value="$image" zoom="true"/>
<KeyPointLabels name="KeyPointLabels" toName="image">
<Label value="cat" smart="true" background="#e51515" showInline="true"/>
<Label value="person" smart="true" background="#412cdd" showInline="true"/>
</KeyPointLabels>
<RectangleLabels name="RectangleLabels" toName="image">
<Label value="cat" background="#FF0000"/>
<Label value="person" background="#0d14d3"/>
</RectangleLabels>
<PolygonLabels name="PolygonLabels" toName="image">
<Label value="cat" background="#FF0000"/>
<Label value="person" background="#0d14d3"/>
</PolygonLabels>
<BrushLabels name="BrushLabels" toName="image">
<Label value="cat" background="#FF0000"/>
<Label value="person" background="#0d14d3"/>
</BrushLabels>
</View>
注:这里的"KeyPointLabels"、“RectangleLabels”、“PolygonLabels”、"BrushLabels"分别表示点、框、多边形、刷子的标注方法,但实际上,只有点、框的方式才有大模型推理
3、大模型设置
设置label studio使用SAM。同样也是在settings里面,点击Machine Learning,Add Model,填入模型名称,以及SAM 启动的URL,记得要将Use for interactive preannotations打开,最后点击右下角按钮Validate and Save
点击后可能成功,也可能失败,失败的时候返回SAM启动终端,会显示报错,大部分都是缺少某些依赖包,装上即可。
4、标注
回到页面点击项目,点击Label All Tasks开始标注。需要把Auto-Annotation打开,并将建议打勾。
此时注意,右边栏有个smart区域,当选择什么类型的标注方法,该区域也会变成相应类型,才有模型推理,否则就是手动标注。当上方的Auto accept annotation suggestions转圈的时候,说明大模型在推理。
下面的标签区域,当要进行某种标注的时候,先选中标签,再进行标注,标注好后,点击submit提交
5、标注物导出
回到项目界面,点击export即可选择所需格式进行保存
五、总结
如果文章对您有所帮助,记得点赞、收藏、评论探讨✌️