在Label Studio中使用SAM2进行视频标注
本指南介绍了如何以最简单的方式开始将SegmentAnything 2与Label Studio结合使用。
该代码库专门用于处理视频中的目标跟踪任务。如需处理图像,请参阅segment_anything_2_image代码库
开始之前
在开始之前,您必须安装Label Studio ML后端。
本教程使用segment_anything_2_video
示例。
从源代码运行
- 要在不使用Docker的情况下运行ML后端,您需要克隆代码库并使用pip安装所有依赖项:
git clone https://github.com/HumanSignal/label-studio-ml-backend.git
cd label-studio-ml-backend
pip install -e .
cd label_studio_ml/examples/segment_anything_2_video
pip install -r requirements.txt
将
segment-anything-2
代码库下载到根目录。按照Meta官方文档安装SegmentAnything模型并下载检查点文件。请确保完成检查点文件的下载步骤!导出以下环境变量(请填写您的凭据!):
- LABEL_STUDIO_URL: 你的label studio实例的http://或https://链接(需包含前缀!)
- LABEL_STUDIO_API_KEY: 您在Label Studio中的API密钥,可在个人资料中获取。
- 然后你可以在默认端口
9090
上启动ML后端:
cd ../
label-studio-ml start ./segment_anything_2_video
请注意,如果您在云服务器上运行,需要在暴露的端口上运行。要更改端口,请在上述启动命令末尾添加-p <端口号>
。
5. 将正在运行的ML后端服务器连接到Label Studio:转到您的项目设置 -> 机器学习 -> 添加模型
并指定http://localhost:9090
作为URL。更多信息请参阅官方Label Studio文档。
同样,如果您在云端运行,需要将此本地主机地址替换为容器的外部IP地址以及暴露的端口。
标注配置
对于您的项目,您可以使用任何支持视频属性的标注配置。这里提供一个基础配置供您开始使用!
<View>
<Labels name="videoLabels" toName="video" allowEmpty="true">
<Label value="Player" background="#11A39E"/>
<Label value="Ball" background="#D4380D"/>
</Labels>
<!-- Please specify FPS carefully, it will be used for all project videos -->
<Video name="video" value="$video" framerate="25.0"/>
<VideoRectangle name="box" toName="video" smart="true"/>
</View>
已知限制
- 截至2024年8月11日,SAM2仅能在GPU服务器上运行。
- 目前,我们仅支持视频中单个对象的跟踪,尽管SAM2可以支持多个对象。
- 目前,我们暂不支持视频分割功能。
- 不支持Docker
如果你想为本代码库贡献代码以帮助解决部分限制,可以提交一个PR。
自定义
可以通过在./segment_anything_2_video
目录中添加自定义模型和逻辑来定制ML后端。