LabelStudio+MobileSam/Sam辅助分割标注
面对海量的图像分割标注任务,你是否渴望能找到一种方法,将标注效率提升数倍?Meta的Segment Anything Model (SAM) 正是这样一个答案,但其庞大的模型体积有时会带来部署上的挑战。本文将提供一个实用的解决方案:我们将一步步引导您,如何在功能丰富的LabelStudio平台上,集成高效的轻量级模型MobileSAM,搭建一套“指哪打哪”的交互式智能标注流程。通过本实践,您将能快
提示:文章写完后,目录可以自成,如何生成可参考右边的帮助文档
文章目录
前言
面对海量的图像分割标注任务,你是否渴望能找到一种方法,将标注效率提升数倍?Meta的Segment Anything Model (SAM) 正是这样一个答案,但其庞大的模型体积有时会带来部署上的挑战。本文将提供一个实用的解决方案:我们将一步步引导您,如何在功能丰富的LabelStudio平台上,集成高效的轻量级模型MobileSAM,搭建一套“指哪打哪”的交互式智能标注流程。通过本实践,您将能快速为自己的标注项目注入AI动力,实现点击即可生成高质量掩码的流畅体验。
一、安装LabelStudio
为了避免与之前的环境冲突先创建虚拟环境,创建好之后进行激活
conda create -n labelstudio python=3.10
conda activate labelstudio
在激活的环境pip下载labelStudio
pip install label-studio
等得下载完成即可进行使用
label-studio start
如果因为宿主机上的端口存在冲突可以以特定端口启动
label-studio start --port 8089
之后便可以通过ip地址进行访问,如均在内网,如部署的服务器ip地址是10.134.2.29,如果是本机部署本机访问通过localhost访问即可
http://10.134.2.29:8089
访问进去先进行注册,注册成功的第一位用户自动成为管理员,可以进行分配账号,管理项目,监控任务等操作。
二、配置Sam/MobileSam辅助标注工具
1.clone相关代码及配置
git clone https://github.com/HumanSignal/label-studio-ml-backend.git
cd label-studio-ml-backend/label_studio_ml/examples/segment_anything_model
克隆完成之后进入相关目录
2.LabelStudio页面查看Token
打开Home主页,点击右上角的“API Tokens Settings”
开启Legacy Tokens
查看API Token ,点击右上角头像,进入个人主页
复制该处的Token,之后配置文件修改需要使用
修改docker-compose.yml
进入第一步克隆的配置资源所在路径下,点击docker-compose.yml文件
将文件修改之后保存
在该路径之下,拉取镜像
docker compose pull
拉取成功之后,运行开启服务
docker compose up -d
成功拉起服务
创建分割项目以及配置SAM模型
正常按照LabelStudio操作进行项目的创建,数据的上传,选择标注类型的时候分割任务可以按照需求选择第一个或者第二个,此时选择第二个
注意,进来之后请参照该模板按需修改,才能开启对应的智能辅助标注
修改成类似如下的格式,可以根据自己需要的类别进行扩充,此处开启了点,框选,等四种只能辅助分割标注工具,最重要的是保持smart=true,注意此处标注的标签生成是mask,逐像素给确定的类别,如果需要修改成多边形可以进行一定的调整
<View>
<Image name="image" value="$image" zoom="true"/>
<!-- KeyPointLabels:开启智能交互 -->
<KeyPointLabels name="KeyPointLabels" toName="image">
<Label value="paking lot" smart="true" background="#FFA39E" showInline="true"/>
<Label value="river" smart="true" background="#D4380D" showInline="true"/>
<Label value="road" smart="true" background="#FAAD14" showInline="true"/>
</KeyPointLabels>
<!-- RectangleLabels:开启智能交互 -->
<RectangleLabels name="RectangleLabels" toName="image">
<Label value="paking lot" background="#FFA39E"/>
<Label value="river" background="#D4380D"/>
<Label value="road" background="#FAAD14"/>
</RectangleLabels>
<!-- PolygonLabels:开启智能交互 -->
<PolygonLabels name="PolygonLabels" toName="image" smart="true" strokeWidth="3" pointSize="small" opacity="0.9">
<Label value="paking lot" background="#FFA39E"/>
<Label value="river" background="#D4380D"/>
<Label value="road" background="#FAAD14"/>
</PolygonLabels>
<!-- BrushLabels:开启智能交互 -->
<BrushLabels name="BrushLabels" toName="image" smart="true" showInline="true">
<Label value="paking lot" background="#FFA39E"/>
<Label value="river" background="#D4380D"/>
<Label value="road" background="#FAAD14"/>
</BrushLabels>
</View>
接入模型,点击刚创建好的项目右上角的三个点,进入设置settings,选择model,输入之前docker启动的端口号的url即可成功连接
这里的模型名字对应docker-compose.yml开启的模型名字即可
使用AI辅助标注工具进行标注
按照图示操作即可得到掩膜,具体操作和效果还有待进一步分析,目前体验感来说不如CVAT
总结
LabelStudio与SAM的结合,为图像分割标注带来了范式上的转变。它通过“指哪打哪”的智能交互,将标注者从繁重的手工勾勒中解放出来,实现了标注效率的数量级提升。这一组合极大地降低了操作门槛,并能凭借SAM强大的零样本能力,快速处理各种未知类别与复杂形状,展现出卓越的通用性。
然而,这套方案并非全能。其优势主要体现在处理“常规案例”上,当面对边缘模糊、透明物体或需要亚像素级精度的专业场景时,SAM的预测可能不尽如人意,有时修正其错误甚至比手动标注更耗时。因此,它更像是一个强大的“力量倍增器”,虽能大幅加速主体流程,但在关键细节上仍离不开标注专家的判断与微调,是效率与精准度之间一次成功的权衡。
更多推荐
所有评论(0)