使用YOLOV8 CLI训练自己的数据集

YOLOV8现在可以直接通过命令行工具运行训练, 推理过程了, 方法如下, 首先安装ultralytics的包:

pip install ultralytics

接着尝试使用yolov8n来简单做个推理:

yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source=some_picture.jpeg

在这里插入图片描述
接下来我们使用一个安全防护, 包括安全帽与反光衣的数据集, 利用3060显卡, 训练看看.
首先我们把数据集连同标注上传到 https://app.roboflow.com/
具体方法如下:
https://blog.roboflow.com/how-to-train-yolov8-on-a-custom-dataset/

基本上拖进去, 点两下鼠标就可以了.

在这里插入图片描述

点击Custom Train and Upload

在这里插入图片描述

选择YOLOv8, 点击GetSnippet

在这里插入图片描述
系统会帮你打个包, 在miniconda里面, 使用curl下载这个压缩包, 然后如果是windows系统, 就直接用系统的解压缩工具解压.

在这里插入图片描述
打开这个reboflow文件夹里面有个data.yaml, 打开, 编辑一下类别名称
在这里插入图片描述
3060显卡只有8G显存, 尝试使用batchsize为16来训练, 后面根据情况调整.

另外, 需要保证这torch的这三个, 是使用的gpu版本:
在这里插入图片描述
开始训练吧:

yolo task=detect mode=train model=yolov8s.pt data=C:\Users\zunly\OneDrive\ai\yolov8_playground\roboflow\data.yaml epochs=100 imgsz=640 batch=16

训练开始了.
在这里插入图片描述
这么点数据, 估计训练120轮也差不多了.

在这里插入图片描述
在166轮的时候告诉我最近50轮都没有啥大的进展, 就自动停止了.

ok, 接下来就利用这个模型来做个推理, source就是我的自拍视频:

在这里插入图片描述

yolo task=detect mode=predict model=C:\Users\zunly\OneDrive\ai\yolov8_playground\runs\detect\train16\weights\best.pt conf=0.25 source=C:\Users\zunly\OneDrive\media_sample\safe_vese_and_hat.mp4 show=True
### 使用YOLOv8训练自定义数据集 #### 准备工作 为了确保良好的可读性和模块化,在处理自定义数据集之前,应该先设置好开发环境并安装必要的依赖项。对于YOLOv8而言,这一步骤通常涉及到克隆官方仓库和创建虚拟环境。 #### 数据集构建 按照最佳实践,建议利用`torch.utils.data.Dataset`来封装自己的数据集[^1]。这意味着要编写一个类继承自`Dataset`,实现`__len__()`方法返回样本总数,以及`__getitem__()`方法用于索引访问单个样本及其标签。针对特定于YOLO的数据格式需求,还需注意图像尺寸的一致性调整与标注文件的形式转换。 ```python from pathlib import Path import cv2 from torch.utils.data import Dataset class CustomImageDataset(Dataset): def __init__(self, annotations_file, img_dir, transform=None, target_transform=None): self.img_labels = pd.read_csv(annotations_file) self.img_dir = img_dir self.transform = transform self.target_transform = target_transform def __len__(self): return len(self.img_labels) def __getitem__(self, idx): img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0]) image = cv2.imread(img_path) label = self.img_labels.iloc[idx, 1] if self.transform: image = self.transform(image) if self.target_transform: label = self.target_transform(label) return image, label ``` #### 配置模型参数 参照YOLO系列其他版本的经验,配置文件是至关重要的组成部分之一。虽然具体到YOLOv8的文档尚未提及,但从逻辑上推测,应当存在类似的`.yaml`配置文件用来指定输入大小、类别数量等超参数[^3]。因此,用户需依据所使用的框架版本定制相应的配置选项。 #### 训练过程 启动训练前,请确认已准备好所有必需资源——包括但不限于GPU支持、足够的内存空间及正确的路径指向。之后可以通过命令行工具或Python脚本调用训练函数。考虑到不同版本间的差异,具体的API接口可能会有所变化;然而总体思路保持一致:加载预训练权重(如果有的话)、设定迭代次数和其他优化器相关参数后执行训练循环。 ```bash # 假设使用的是CLI方式 yolo train \ --imgsz 640 \ # 输入图片尺寸 --batch-size 16 \ # 批量大小 --epochs 50 \ # 总轮数 --data path/to/data.yaml \ # 自定义数据集描述文件位置 --weights yolov8n.pt # 初始权重文件名 (可以为空字符串表示随机初始化) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值