目标检测——YOLOv8训练自己的数据集

1.下载YOLOv8源代码

下载链接

2. 配置环境
bash 复制代码
conda create -n yolov8 python=3.8
conda activate yolov8
pip install -r requirements.txt
pip install -e .

无需执行下面这步!

bash 复制代码
pip freeze > requirements.txt # 导出conda环境中相关的包
3. 数据集准备

数据集标签的格式标注为yolo的txt格式,在labelimg选择YOLO即可,然后进行标注,最后把数据集划分为训练集,验证集,(测试集)即可

  • 非yolo的txt格式,需进行数据集格式转换,相应的转换代码:链接

  • 划分数据集代码见:链接

4.预训练模型

如果未改变网络结构,则可以加载官方在COCO数据集上训练好的预训练模型,加快网络的收敛速度,下载相应的目标检测预训练模型并导入预训练模型,下载链接:链接

5.配置参数
  • 配置数据集路径,类别等(data.yaml文件)
  • 训练轮次(epoch)
  • 批次(batchsize)
  • 数据增广等超参数...
6.开始训练

创建train.py文件,复制以下代码运行

python 复制代码
from ultralytics import YOLO
if __name__ == '__main__':
    # 加载模型
    model = YOLO("ultralytics/ultralytics/cfg/models/v8/yolov8n.yaml")
    # 加载预训练权重
    model.load("yolov8n")
    # 训练模型
    results = model.train(data="ultralytics/data/data.yaml",  
                          resume=True,
                          epochs=100,
                          project='train',
                          patience=30,
                          name='exp',
                          amp=False)
7.开始推理

创建val.py文件,复制以下代码运行

python 复制代码
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('runs/train/exp/weights/best.pt')
    model.val(data='dataset/data.yaml',
              split='test',
              imgsz=640,
              batch=1,
              project='runs/val',
              name='exp',
              )
8.开始预测

创建detect.py文件,复制以下代码运行。如果需要对预测的结果进行一些处理,则需要知道预测的结果张量中代表的含义,参考链接如下:链接

python 复制代码
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('runs/train/exp/weights/best.pt') # select your model.pt path
    model.predict(source='dataset/images/test',
                  project='runs/detect',
                  name='exp',
                  save=True, 
                  )
相关推荐
知几蜗牛6 分钟前
HydraFusion的Single、Cascade与Critique如何落到工程门禁
人工智能
mit6.8247 分钟前
plz直接提交 pull equest
人工智能
Solara8 分钟前
29 条回复永远没送到:翻完 108 条投递台账,我才发现「微信限流」是我取错的名字
人工智能·agent·ai编程
lucas_AI9 分钟前
别再无脑堆数据了:腾讯 WeVisDoc 把文档解析卷到 95 分,token 是按预算花的
人工智能
橘和柠9 分钟前
一台笔记本上的三国杀:eNSP、VirtualBox 与 Docker,我让它们共存了
人工智能
achong14 分钟前
AI 写代码比你还啰嗦?用 ponytail「懒人法则」治它
人工智能
知几蜗牛19 分钟前
从ATOF事件配对理解Agent工具调用的可观测性
人工智能
画绛集美术20 分钟前
用开源AI语音合成做课程口播音频:一间美术教室的技术笔记
人工智能·笔记·音视频
知几蜗牛22 分钟前
从WER、TTFA、SIM到Pareto前沿的开源TTS选型方法
人工智能
reeswell24 分钟前
我开源了 inspect-devtools —— 让 AI 终于能"看见"你屏幕上的组件
前端·人工智能