给label-studio 配置sam(segment anything)ml 记录

给label-studio 配置sam(segment anything)ml 后端记录

  • 配置ml后台
    • 下载代码
    • 下载模型文件
    • 创建环境
    • 模型转换
    • 后端服务启动
  • 配置label-studio 前端
    • 配置模型后端连接
    • 配置标注模板
    • 标注界面使用
  • 参考链接

配置ml后台

下载代码

git clone https://github.com/HumanSignal/label-studio-ml-backend.git

下载模型文件

cd label-studio-ml-backend/label_studio_ml/examples/segment_anything_model
# 如果下载慢的话可以看下里面的链接,单独下载下来放到当前目录的models文件夹下
sh download_models.sh

创建环境

conda create -n segment_anything python==3.10.6
conda activate segment_anything
# torch 的安装可以参考 pytorch 官网,
# conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidiapip install --no-cache-dir -r requirements.txt

模型转换

将sam pth模型转为onnx 模型 (如果需要使用onnx模型的话 不需要可以不用转)

# 将sam pth模型转为onnx 模型 (需要)
mv ./models/sam_vit_h_4b8939.pth ./
python onnxconverter.py 
mv sam_vit_h_4b8939.pth ./models
mv sam_onnx_* ./models

后端服务启动

# 使用原 SAM 的 启动命令
#VITH_CHECKPOINT=./models/sam_vit_h_4b8939.pth SAM_CHOICE=SAM python _wsgi.py --port 9090 # 使用ONNX的 启动命令
#VITH_CHECKPOINT=./models/sam_vit_h_4b8939.pth ONNX_CHECKPOINT=./models/sam_onnx_example.onnx SAM_CHOICE=ONNX python _wsgi.py --port 9090 # 使用ONNX 量化版的 启动命令
#VITH_CHECKPOINT=./models/sam_vit_h_4b8939.pth ONNX_CHECKPOINT=./models/sam_onnx_quantized_example.onnx SAM_CHOICE=ONNX python _wsgi.py --port 9090 
# 使用MobileSAM  的 启动命令
MOBILESAM_CHECKPOINT=./models/mobile_sam.pt SAM_CHOICE=MobileSAM python _wsgi.py --port 9090 

启动成功如下图所示
在这里插入图片描述

配置label-studio 前端

配置模型后端连接

启动label-studio ----> 打开 label-studio -----> 点击在project 的setting ----> 选择Machine Learning ----> 选择Add Model —> 填写信息 —> 打开 Use for interactive preannotations —> 选择 Validate and Save

在这里插入图片描述

配置标注模板

点击在project 的setting ----> 选择Labeling Interface —> 选择code —> 复制下面的标注模板 —> 根据需求增改为自己的label

<View><Image name="image" value="$image" zoom="true"/><BrushLabels name="tag" toName="image"><Label value="Banana" background="#FF0000"/><Label value="Orange" background="#0d14d3"/></BrushLabels><KeyPointLabels name="tag2" toName="image" smart="true"><Label value="Banana" smart="true" background="#000000" showInline="true"/><Label value="Orange" smart="true" background="#000000" showInline="true"/></KeyPointLabels><RectangleLabels name="tag3" toName="image" smart="true"><Label value="Banana" background="#000000" showInline="true"/><Label value="Orange" background="#000000" showInline="true"/></RectangleLabels>
</View>

标注界面使用


标注任务界面点击打开Auto Annotation
在这里插入图片描述

和 Auto accept annotation suggestions
在这里插入图片描述

点击auto-Detect 选择相应的label 就可以使用sam建议的结果了
在这里插入图片描述
在这里插入图片描述

参考链接

  1. label-studio-ml-backend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AT24C02(I2C总线)通信的学习

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、存储器介绍二、AT24C02芯片二、I2C总线I2C电路规范I2C时序结构I2C数据帧AT24C02数据帧 总结 前言 学习AT24C02(I2C总线)芯片 一、存储器介绍 RAM&#xf…

QT-地形3D

QT-地形3D 一、 演示效果二、关键程序三、下载链接 一、 演示效果 二、关键程序 #include "ShaderProgram.h"namespace t3d::core {void ShaderProgram::init() {initializeOpenGLFunctions();loadShaders(); }void ShaderProgram::addShader(const QString &fil…

计算机二级C语言的注意事项及相应真题-5-程序修改

目录 41.累加链表结点数据域中的数据作为函数值返回42.根据整型形参m&#xff0c;计算如下公式的值43.删除数列中值为x的元素44.从N个字符串中找出最长的那个串&#xff0c;并将其地址作为函数值返回45.将两个长度相等的纯数字字符串当作两个加数&#xff0c;求其代表的数值之和…

欢迎来到IT时代----盘点曾经爆火全网的计算机电影

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;这…

【动态规划】【字符串】2167移除所有载有违禁货物车厢所需的最少时间

作者推荐 【深度优先搜索】【树】【有向图】【推荐】685. 冗余连接 II 本文涉及知识点 动态规划汇总 LeetCode2167移除所有载有违禁货物车厢所需的最少时间 给你一个下标从 0 开始的二进制字符串 s &#xff0c;表示一个列车车厢序列。s[i] ‘0’ 表示第 i 节车厢 不 含违…

第五次作业(防御安全)

需求: 1.办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP 不能用来转换&#xff09; 2.分公司设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3.分公司内部的客户端可以通过公网地址访问到内部的服务…

Linux:grep进阶(11)

Linux&#xff1a;shell脚本&#xff1a;基础使用&#xff08;4&#xff09;《正则表达式-grep工具》_shell grep 全角字符串-CSDN博客https://blog.csdn.net/w14768855/article/details/132338954?ops_request_misc%257B%2522request%255Fid%2522%253A%252217083360171680022…

c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)

代码中部分调用的 c 函数参数&#xff0c;具体说明自行研究~&#xff08;我也是参考的其他资源&#xff0c;还没研究透彻&#xff09; 例如&#xff1a;HOperatorSet.GenRectangle2() &#xff0c; 2000, 2000, 0, 2000, 2000 这些数字应该是选取的图片解析范围、尺寸&#xff…

Linux环境变量配置文件--《一图胜千言》

这张图是一个关于Linux系统中shell启动时配置文件加载顺序的流程图。图中分为登录shell和非登录shell两种情况&#xff0c;来描述不同配置文件的读取过程。 登录shell&#xff1a; 当用户登录时&#xff0c;会首先检查是否存在/etc/profile文件&#xff0c;如果存在&#xff0c…

酷开科技 | 酷开系统壁纸模式,让过年更有氛围感!

在阵阵爆竹声中&#xff0c;家家户户都沉浸在浓浓的年味中。过年&#xff0c;是团圆&#xff0c;是温暖。团团圆圆的日子里&#xff0c;仪式感不可少&#xff0c;换上一张喜气洋洋的电视壁纸吧&#xff0c;寓意幸福一年又一年。打开酷开系统壁纸模式挑选一张年味十足的壁纸&…

【深度学习】神经网络的建立与推理

文章目录 神经网络&#xff08;neural network&#xff09;的结构神经元中常用的激活函数&#xff08;activation function&#xff09;神经网络的表示神经网络的代码实现使用已学习完毕的神经网络进行推理&#xff08;inference&#xff09; 源代码文件请点击此处&#xff01;…

毕设(二)——NB-IOT通信模块(nb卡通信测试)+gps定位

文章目录 一、关于接线2月1日记录2月4日记录 二、网络连接测试三、HTTP通信3.1 网络调试3.2 nb-lot的连接测试 一、关于接线 如果pico的供电能力不行&#xff0c;可能会直接用4.2V的锂电池对右下引脚进行供电 这个模块只支持nb卡&#xff0c;我哭死&#xff0c;20块钱&#xff…

01 Qt自定义风格控件的基本原则

目录 1.继承原生控件 2.组合原生控件 3.仿写原生控件 PS:后续将继续分享开发实践中各类自定义控件的方法、思路以及组件库 1.继承原生控件 关键字&#xff1a;继承、paintEvent 这里想说的是&#xff0c;Qt的Gui框架在封装原生控件的同时&#xff0c; 也为开发者提供了各…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况&#xff1a; 方法二 一次遍历&#xff1a; var maxProduct function(nums) {let first-1,second-…

MySQL的备份与恢复案例

新建数据库 数据库备份&#xff0c;数据库为school&#xff0c;素材如下1.创建student和score表CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address…

打码半年,开源一款自定义大屏设计软件!

hi&#xff0c;大家好&#xff0c;我是Tduck马马。 最近我们开源了一款大屏软件-TReport&#xff0c;与大家分享。 TReport是一款基于Vue3技术栈的数据可视化系统&#xff0c;支持静态、动态api等数据源&#xff1b;可用于数据可视化分析、报表分析、海报设计使用。 提供自定…

leetcode hot100 分割等和子集

在本题中&#xff0c;我们是要把一个数组&#xff0c;分割成两个子集&#xff0c;并且两个子集的元素和相等。那么也就是说&#xff0c;两个子集的和是相等的&#xff0c;并且都是整个数组的一半。那我们考虑这是一个01背包问题&#xff0c;物品的价值和物品的质量一样&#xf…

linux 10 定时任务

作用: 计划任务主要是做一些周期性的任务&#xff0c; 目前最主要的用途是定期备份数据。 at命令的时间格式&#xff1a; 例子&#xff1a; crontab有系统级别的任务&#xff0c;用户的不放在这里 查看用户任务 或者用

VSCODE使用Django

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 HTML文件 实现步骤 1&#xff0c; 修改代码&#xff0c;hello的App名字增加到installed_apps表中。 2&#xff0c; hello子目录下&#xff0c;创建 .\templat…

一文搞懂LDO !

7.LDO 1.原理 通过运放调节P-MOS的输出 低压差&#xff1a; 输出压降比较低&#xff0c;例如输入3.3V&#xff0c;输出可以达到3.2V。 线性&#xff1a; LDO内部的MOS管工作于线性状态。&#xff08;可变电阻区&#xff09; 稳压器&#xff1a; 说明了LDO的用途是用来给电…