YOLO视觉检测应用标注篇(五)
基于SAM2的半自动标注
之前介绍了使用Labelme
等工具进行标注。
今天介绍下新的工具,并且使用SAM2来实现半自动的标注。
半自动标注与全自动标注
所谓半自动标注
与全自动标注
,其实并非完全无人工参与。
半自动标注
我这边所谓的半自动标注,指的是:
人工点击目标,自动生成矩形框。无需人工进行框选。
虽然人工依然参与,但是工作量降低了很多。
而且可以实现非常高的精度,
适合用于最初始的训练数据集。
全自动标注
我这边所谓的全自动标注,指的是:
软件根据模型自动进行框选,但依旧需要人工复核,可能需要修正。
适合在预训练模型下增加数据集进行进一步训练使用。
这部分我们下一篇再介绍。
工具 X-Anylabeling
使用的工具是开源的X-Anylabeling
Github官网地址
这个软件可以直接生成YOLO的标注文件,不需要进行json2txt转换。
安装
最简单的是进入Releases下载最新的版本
TIP
如果从source安装,需要下载onnxruntime
1 |
|
*INFO
如果出现DLL Load failed
报警,推荐首先检查onnxruntime的版本
本篇使用GUI程序举例
手动标注
TIP
如果需要使用中文,请在语言菜单中选择中文
选择目录
后会导入图片。
左侧选择合适的形状去进行框选,定义目标物的分类,就可以完成手动的标注。
导入模型
要使用SAM2进行半自动的标注,首先需要导入模型。
点击左侧的AI
标识,会在菜单栏下方显示导入模型的下拉框。
理论上我们此时可以选择Segment Anything 2.1
就可以应用了。
但是,由于网络的关系,我们可能无法正常下载到模型。
这时我们需要手动加载模型。
加载目录
首先,我们先下载一个对应的模型,比如Segment Anything 2.1(Tiny)
直到软件报错"Error Loading..."
然后,在当前用户目录下查找~/xanylabeling_data/models
比如:c:/userprofile/user/anylabeling_data
我们看到生成了一个名为sam2_hiera_tiny-r20240801
的文件夹,但里面是空的。
下载模型
接着,我们从官方的Model_zoo下载需要的模型和配置文件
举例SAM2.1 Tiny
的话分为三个文件:
- sam2.1_hiera_tiny.encoder.onnx 百度网盘|Github
- sam2.1_hiera_tiny.decoder.onnx 百度网盘|Github
- sam2_hiera_tiny.yaml
将下载的模型放入到模型文件夹中TIP
前面生成文件夹的步骤其实可以省略
但是需要自己编辑yaml文件使得完全一致
加载模型
我们在软件的界面上重新加载用户自定义模型。
找到先前的models
文件夹,选择我们自定义的模型
直到软件显示已经加载了模型。
如果软件报错,可能还是上一步设置的过程yaml
文件不对,请检查。
TIP
使用自定义的文件夹会让软件记住模型
使用自动生成的文件夹每次都需要自己选择路径
实现半自动标注
标注
我们首先在输出
选择矩形框
(其实也可以选择你喜欢的其他形状,比如多边形)
然后选择+点
,在目标物上面点一下
之后模型开始进行推理
之后你就会在图像上看到一个矩形框了。
需要的话也可以加更多点或者-点
选择**完成对象**
,会提示我们进行标签填写
TIP
如果在一个图片上有多个标签,
可以先点击完成对象
生成,
然后在新生成的标签上右击-编辑标签
进行修改
或者在左侧边栏选择编辑
,在矩形框右击进行编辑标签
操作
在工具-标签管理器
中,可以对标签颜色进行自定义
标签文件导出
准备classes.txt
首先需要准备一个classes.txt
文件在输出目录,每一行代表一个类别,编号从上到下由0开始递增
classes.txt内容举例:
1 |
|
由此,0代表meat,1代表vegetable
导出YOLO标签
选择导出
YOLO的标签
导出路径默认保存在当前图片目录的同级目录下的labels
文件夹内。
我们可以看到会自动生成YOLO所使用的txt标注文件
小结
由此我们实现了基于SAM2的半自动标注。
下一篇我们将介绍全自动标注的实现。