Yolov13安全帽检测分享【源码+数据集】
本文数据集从网络下载得来,数据组织结构如下所示,每一行代表一个目标对象,其格式如下:
<class_id> <center_x> <center_y> <width> <height>
各字段含义:
字段 | 类型 | 类型 |
---|---|---|
class_id | 整数 | 类别编号(从 0 开始,如 0 表示 “cap”,1 表示 “hard hat” 等 |
center_x | 浮点数 | 边界框中心点的 x 坐标(相对于图像宽度归一化,范围 [0,1]) |
center_y | 浮点数 | 边界框中心点的 y 坐标(相对于图像高度归一化,范围 [0,1]) |
width | 浮点数 | 边界框的宽度(相对于图像宽度归一化) |
height | 浮点数 | 边界框的高度(相对于图像高度归一化) |
📌 示例解析
以第一张图的标签为例,表示:
1 0.5110876451953538 0.412385643912375 0.8975712777191129 0.733286418015482
类别编号为 1:对应 lab.txt 中定义的 ‘hard hat’,即这是一个“安全帽”。
边界框中心坐标:
- center_x = 0.5111 → 图像宽度方向约 51% 的位置(接近中间)
- center_y = 0.4124 → 图像高度方向约 41% 的位置(略偏上)
边界框尺寸:
- width = 0.8976 → 框的宽度占整张图像宽度的近 90%
- height = 0.7333 → 框的高度占整张图像高度的约 73%
👉 这意味着这个“安全帽”的边界框几乎覆盖了图像的中央区域。
二、模型训练
下载Yolov13源码,如下图所示
2.1 划分训练集和验证集
使用 split.py 脚本,设置保存路径,图片路径和标签路径
2.2 创建数据集yaml文件
如下图所示,创建 satety-hat.yaml(名称任意), 设置 train.txt 和 val.txt 的保存路径,以及names与lab.txt的索引一致
2.3 训练
打开 main.py 脚本,设置预训练模型路径,数据配置文件路径,以及默认的 ultralytics/cfg/default.yaml 参数配置文件。
设置完成之后,即可右键开始训练
训练过程中要注意的地方
- Arial.ttf :刚开始训练的时候,模型会自动下载这个字体文件,但由于网络原因,有可能会下载失败,因此这里提供了这个文件,需要放到模型训练时候提示的路径中,笔者这里的路径为 /root/.config/yolov13
- default.yaml:刚开始训练的时候,可能会提示错误TypeError: ‘workspace=None’ is of invalid type str. Valid ‘workspace’ types are int (i.e. ‘workspace=0’) or float (i.e. ‘workspace=0.5’)
这是因为在某些版本的 ultralytics 中,如果传入的是字符串 “None” 或者类型不对(比如不是 int 或 float),就会抛出类似错误,这时候按照提示修改workspace=0即可
三、预测
打开 predict.py,设置模型训练完成后的路径
以及在 ultralytics/cfg/default.yaml 修改 source 路径为预测图片路径,如下图所示
预测结果示例:
为了小伙伴们能够,更好的学习实践,本文已将训练代码和数据集打包上传,供小伙伴们学习。获取方式如下:
关注公众哈【小白深度学习之路】,发送【yolov13】即可。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)