yolo各个版本都提供了预测时生成标签文件的功能,因此可以利用此功能达到半自动化打标签效果,下面以yolov8为例。
半自动打标签
1、预先训练数十张~数百张图片(具体看效果,训练效果越好后续自动标签效果肯定越好)得到模型.pt
2、预测参数:
- source:选择要自动打标签的图片目录
- conf:置信度
- save_txt:将检测结果以yolo格式保存在txt中
from ultralytics import YOLO
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
model = YOLO("best.pt")
results = model.predict(source="C:/imgs", conf=0.3, save_txt=True)
3、将yolo\runs\detect\labels中所有txt文件直接复制到labelimg工作的标签保存目录中(labelimg中使用yolo格式,否则自己转换一下)
4、在labelimg中微调刚刚导入的标签数据
加入新标签labelimg闪退问题
将预测出来的标签复制进labelimg标签保存目录可能会导致labelimg读不到classes闪退(常见报错IndexError: list index out of range),解决方法如下:
1、进入anaconda3安装目录,接着进入envs\labelimg安装在的虚拟环境\Lib\site-packages\labelImg(直接在本机装的就进入Python安装目录Lib),然后创建文件夹Data
2、进入Data目录,创建predefined_classes.txt,在里面填充你的classes(大概是labelimg读不到classes会去默认读这个位置的classes)
或者:现在标签保存目录下的classes.txt中编辑好标签,然后在labelimg中随意一张图随意位置w框住,按顺序打标签名,然后删掉框框