【yolov8】6、labelimg安装使用-数据集标注

1、说明

第4-5章是安装显卡驱动,这里省略,章节名称如下

  • 第4章 3种查看英伟达显卡CUDA版本的方法
  • 第5章 cuda和cudnn下载和安装

2、Labelimg 安装

Stage 1 :打开 anaconda
  • 开始 - 搜索 anaconda - 打开

  • 为了方便使用可以创建快捷方式:右键annaconda 打开文件位置,将快捷键图标复制到桌面上即可

在这里插入图片描述

Stage 2 :base 环境切换成 yolo8
  • 原因:安装在base环境,容易闪退
conda activate yolo8

在这里插入图片描述

Stage 3 :安装 labelimg
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

Stage 4 :打开 labelimg
Stage 4-1 : 查看 labelimg 安装位置 :conda info --envs

在这里插入图片描述

Stage 4-2 : 创建 labelimg 桌面快捷方式

3、Labelimg 使用

3.1 常用设置

在这里插入图片描述

3.2 常用按钮

按钮作用是否常用
Open打开单张图片
Open Dir打开图片所在文件夹
Change Save Dir输出的标注文件保存位置
Hext Image
Prev mage
Verify Image
Save
PascalVOC 、YOLO、CreateML保存的格式,一般选择 yolo

3.2 常用快捷键

按钮作用
A 切换到上一张图片
D 切换到下一张图片
W 调出标注十字架
del删除标注框框
Ctrl+u 选择标注的图片文件夹
Ctrl+r 选择标注好的label标签存在的文件夹

4、启动labelimg的3中方式

方式 1 :在安装环境目录下是 script,创建桌面快捷键方式

  • 双击打开即可
    在这里插入图片描述

方式 2 :进入对应的环境,输入 labelimg

  • base容易闪退, 环境切换成 yolo8
conda activate yolo8
labelimg

在这里插入图片描述

方式 3 :进入对应的环境,输入以下内容【推荐

# 切换成yolo8环境
conda activate yolo8

# 进入图片文件夹
e:
cd E:\dataset\dataset20210113

# 打开labelimg (设置默认标记列表)
# 其中 images 为图片地址(E:\dataset\dataset20210113\images)
# class.txt 标记列表(E:\dataset\dataset20210113\class.txt ),如果
labelimg images class.txt

请添加图片描述

### 如何使用 LabelImg 进行 YOLOv8 数据集标注 LabelImg 是一款广泛使用的图像标注工具,支持多种格式导出标注文件。对于 YOLOv8数据集准备,可以通过以下方法完成标注工作。 #### 安装 LabelImg 工具 首先需要安装 LabelImg 工具。推荐通过 `pip` 或者源码编译的方式进行安装。以下是 pip 安装命令: ```bash pip install labelimg ``` 如果希望通过 Anaconda 环境管理依赖项,则可以按照以下方式进行安装: ```bash conda install pyqt=5 conda install -c anaconda lxml pip install labelimg ``` 启动工具时运行以下命令即可打开图形界面: ```bash labelimg ``` --- #### 使用 LabelImg 创建标注 1. **加载图片** 打开 LabelImg 后,点击左上角菜单栏中的 “Open Dir”,选择包含待标注图片的目录;再点击 “Change Save Dir” 设置保存标注文件的位置[^2]。 2. **设置标签列表** 在顶部菜单中找到并点击 “Pref”(Preferences),弹出配置窗口后勾选 “Create PASCAL VOC .xml”。接着切换到 “Labels” 部分,手动输入目标类别的名称,或者导入预先写好的 `.names` 文件作为标签集合[^3]。 3. **绘制边界框** 对每一张图片逐一操作:先用鼠标拖拽画矩形区域覆盖感兴趣的目标对象,随后从下拉菜单里挑选对应的类别名赋予该 bounding box。完成后按快捷键 Ctrl+S 存储当前进度至本地磁盘为 XML 格式的描述文档。 4. **转换成 YOLO 格式** 默认情况下,LabelImg 输出的是 Pascal VOC 格式的 xml 文件。为了适配 YOLOv8 输入需求,需借助额外脚本来实现批量转化任务。下面给出一段 Python 脚本用于自动化此过程: ```python import os from xml.etree import ElementTree as ET def convert(size, box): dw = 1./size[0] dh = 1./size[1] x = (box[0] + box[1])/2.0 y = (box[2] + box[3])/2.0 w = abs(box[1] - box[0]) h = abs(box[3] - box[2]) x = round(x*dw, 6) w = round(w*dw, 6) y = round(y*dh, 6) h = round(h*dh, 6) return (x,y,w,h) def main(): classes = ["your_class_name"] # 替换为你自己的分类名字 for file in os.listdir("./Annotations"): if not file.endswith(".xml"): continue tree = ET.parse(f"./Annotations/{file}") root = tree.getroot() size = root.find('size') width = int(size.find('width').text) height = int(size.find('height').text) filename = f"{os.path.splitext(file)[0]}.txt" with open(os.path.join("labels", filename), 'w') as out_file: for obj in root.iter('object'): cls = obj.find('name').text if cls not in classes: continue bndbox = obj.find('bndbox') bbox = ( float(bndbox.find('xmin').text), float(bndbox.find('xmax').text), float(bndbox.find('ymin').text), float(bndbox.find('ymax').text)) bb = convert((width,height),bbox) class_id = classes.index(cls) out_str = f"{class_id} {bb[0]} {bb[1]} {bb[2]} {bb[3]}" out_file.write(out_str+'\n') if __name__ == "__main__": main() ``` 上述代码会读取所有的 XML 文件并将它们转化为 YOLO 文本格式存储于指定路径下的 labels 文件夹之中。 --- #### 注意事项 - 如果仅有一个类别,可以在偏好设置中启用默认标签选项来减少重复劳动量。 - 记得调整上面提到的 `classes` 列表以匹配实际项目里的物体种类定义情况。 - 当前示例假设所有原始标注位于 Annotations 目录而最终结果应放置在 labels 下面,请依据个人环境做相应修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ladymorgana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值