最近Open-mmlab开源了Playground项目,将最近引起CV界轰动的SAM(Segment Anything Model)模型和Open-mmlab多个视觉框架相结合,可实现多种视觉任务的自动标注,本文将采用Open-mmlab的Playground开源项目,使用SAM和LabelStudio,实现分割任务的半自动标注。 下载playground的github库 git clone https://github.com/open-mmlab/playground 安装Pytorch 安装工具包 pip install opencv-python pycocotools matplotlib onnxruntime onnx 安装SAM git clone https://github.com/facebookresearch/segment-anything.git python setup.py install 下载SAM预训练权重 可下载以下几个预训练权重文件,文件从小到大依次排列,越大的模型分割效果越好,但是分割时间也越长,建议先使用最小的模型试试效果,目前实测最小的模型分割效果也很不错。 https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth 安装label-studio pip install label-studio 安装label-studio-ml-backend pip install label-studio-ml 启动SAM后端并加载模型 cd E:\playground-main\label_anything label-studio-ml start sam --port 8003 --with sam_config=vit_b sam_checkpoint_file=E:/Downloads/sam_vit_b_01ec64.pth out_poly=True out_mask=True out_bbox=True device=cuda:0 注: 1,sam_checkpoint_file=E:/Downloads/sam_vit_b_01ec64.pth,这里为SAM预训练模型路径,指定为你自定义的路径; 2,device=cpu使用CPU,device=cuda:0使用GPU; 3,out_poly=True 表示保存结果的时候会保存分割的polygon标注信息; 4,out_mask=True 表示保存结果的时候会保存分割的Mask信息; 5,out_bbox=True 表示保存结果的时候会保存分割的边界框标注信息; 6,sam_config=vit_b和使用的模型预训练权重相对应 此时,SAM后端推理服务已经启动。接下来,您可以在Label-Studio Web系统中配置http://localhost:8003后端推理服务。上述终端窗口需要保持打开状态。 启动Label-Studio的Web服务 若需要使用vit-h大模型,则需要设置以下环境变量,但是大模型加载时间很长,容易导致与后端连接超时。如果不使用则跳过该步骤,不然会导致与后端连接超时。 Linux requires the following commands export ML_TIMEOUT_SETUP=40 Windows requires the following commands set ML_TIMEOUT_SETUP=40 启动Web服务 label-studio start 打开浏览器并访问 http://localhost:8080/ 以查看Label-Studio平台界面 启动Web服务到Label Studio平台后,如果之前没有注册,需要进行注册再登陆。 设置标签 在Settings/Labeling界面中配置Label-Studio关键点、掩码和其他标注信息。在示例图中,KeyPointLabels用于关键点标注,BrushLabels用于掩码标注,PolygonLabels用于边界多边形标注,RectangleLabels用于矩形标注。 将下面的XML复制并添加到Label-Studio,然后单击Save。
添加OpenMMLabPlayGround后端推理服务 设置并单击Add Model添加openmmlabgame后端推理服务。为SAM后端推断服务设置URL http://localhost:8003,启用Use for interactive preannotations,即自动标注开关,并单击Validate和Save。 开始半自动标注 回到项目界面,单击Label开始标注 要使用自动标注功能,需要打开Auto-annotation开关,并建议勾选Auto accept annotation建议选项。然后单击右侧工具栏最下面的按钮,可以切换点、框、矩形框等模式,默认为点模式,并从下面的标签选项中选择你想要标注的类别 或者使用eiseg https://github.com/PaddlePaddle/PaddleSeg/blob/develop/EISeg/docs/install.md 安装PaddlePaddle pip install paddlepaddle-gpu==2.5.1.post116 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html 安装eiseg pip install eiseg 下载预训练模型 https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.8/EISeg/docs/image.md 运行 eiseg