使用YOLO自动标注,并由用labelImg微调

前言:什么是自动标注?

在训练过程中,如果图片的数据量不够,或想通过某些手段加快标注的效率,可以在之前训练好的模型基础上识别出一些物体,根据已识别的数据进行转换。在labelme或labelimg上继续修改已识别的数据。这时候由于已经有很多物体被模型识别预先标注了,可以很大提高标注的效率。

工具:YOLO模型,labelImg

这里推荐使用的工具是labelImg,其它标注labelme工具需要其它转换,不太推荐。实测YOLO版本是YOLOV7,其它YOLO系列也可以保存识别的结果,就算有差异应该不大可以轻松地进行转换。

而关于labelImg的安装与使用请查看这篇文章

开始标注:

1.获取预权重

可以先用标注软件标注300张图片,然后用YOLOv7训练得出预权重。然后把权重放入YOLO模型的weight目录下。

2.修改参数

接着是通过设置参数,打开detect.py,修改save--text 参数,值为'store_false'。

该参数的意思是是否保存检测后后的结果,如框的位置大小,框的物体类别。注意,store_false才是保存检测的结果。

3.运行项目

现在我们在/yolov7/这个工作路径下,输入如下命令

python detect.py --weights weights/yolov7.pt --source inference/images

参数说名

--weights weight/yolov7.pt   # 这个参数是把已经训练好的模型路径传进去,就是刚刚下载的文件
--source inference/images   # 传进去要预测的图片

 如果得到如下的运行结果,则说明运行成功,预测的图片被保存在了/runs/detect/exp2/文件夹下

 

 4.在检测的结果中加入图片和类数据。

 首先来到检测结果的输出目录,看到已经生成和图片格式完全一致的label格式。

打开后是数据是这样的格式。保存的格式是:类别索引,框的位置和大小数据。

 我们把对应的图片目录YOLOV7\inference\images下的图片全部拷到单独目录(是原图),如下图。输出结果的label文件和图片是对应的。

PS:label和原图要分开两个文件夹

 

 最后加入框类型各类的文件。文件格式是.txt,格式如下。在我这个模型中识别的是一下几种类别。

5.最后打开标注软件对结果进行修改。

若是YOLO数据集格式,标注文件为txt文件:

在labelimg中选择Open Dir,打开存放原图的目录,让选择Change Save Dir,选择刚刚模型输出label目录。已经看到模型识别后标注的结果,具体框的结果与模型的准确度有关。

若是VOC数据集格式,标注文件为XML格式:

在精灵标注助手中选择新建项目,选择刚才的模型输出目录。进入后选择导入,把xml文件导入,则可以看到模型识别后标注的结果,具体框的结果与模型的准确度有关。

 

如果有发现标注不正确或错误太多的可以适当调高conf-thres值再检测,默认是0.25。

如果误识别或标注框不对,可以在labelimg上对标注的信息进行修改。

参考文章:https://www.cnblogs.com/cnZhi/articles/17055439.html

### 使用LabelImg实现图片的自动标注 为了使用LabelImg进行图像的自动标注,可以采用一种混合方法,即先利用现有的YOLO模型对图像进行初步预测,再通过LabelImg微调这些预测结果。这种方法不仅提高了效率,还保证了标注的质量。 #### 准备工作 确保已经安装配置好了LabelImg工具以及所需的YOLO模型环境。对于YOLO模型而言,这通常意味着拥有训练好的权重文件和相应的配置文件[^3]。 #### 自动化流程概述 1. **准备待标注的数据集** - 创建`images`和`labels`两个主要文件夹,在`images/train`中放入所有需要标注的原始图像文件;而`labels/train`则为空置状态等待填充由YOLO生成的结果。 2. **运行YOLO推理脚本** ```python from yolov7 import YOLOv7 model = YOLOv7('path/to/weights') images_dir = 'path/to/images' output_labels_dir = 'path/to/output_labels' # 对指定路径下的每张图片执行检测操作,保存产生的标签至output_labels_dir内 for img_file in os.listdir(images_dir): result = model.detect(os.path.join(images_dir, img_file)) save_label(result, os.path.join(output_labels_dir, f"{os.path.splitext(img_file)[0]}.txt")) ``` 3. **启动LabelImg自动生成的标签导入** 尽管直接从菜单栏打开已有注解的功能可能无法正常使用[^2],但是可以通过命令行参数的方式让LabelImg读取之前由YOLO生成的`.txt`格式的边界框信息作为初始标记: ```bash labelimg path_to_images path_to_predefined_annotations ``` 此时,当在LabelImg界面浏览某幅特定图像时,程序将会尝试加载同名但扩展名为`.xml`或`.txt`(取决于设置) 的文件作为该图默认显示的对象位置提示。用户可以根据实际情况调整这些矩形框的位置、类别等属性,从而完成最终的人工校正过程[^4]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值