You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用YOLOv8训练发票与收据图像分类模型?

YOLOv8发票/收据分类训练解决方案

错误原因分析

报错FileNotFoundError: Found no valid file for the classes labels主要由以下几点导致:

  • 数据集结构不符合YOLOv8分类的默认加载逻辑,默认会自动寻找val验证集目录
  • 当前工作目录与数据集路径不匹配,导致程序找不到图像文件
  • 图像格式不在支持列表内,或目录中存在非图像干扰文件

分步解决方案

1. 调整数据集结构(可选但推荐)

YOLOv8分类优先识别包含train和val子目录的数据集根目录,规范结构如下:

prj
  -train
    -invoice
    -receipt
  -val  # 建议从train中抽取10%-20%数据作为验证集,无则可暂时跳过
    -invoice
    -receipt

2. 修复路径与加载参数

方法1:指定工作目录并跳过验证集(无val目录时)

在代码开头添加工作目录指定,同时通过split='train'参数告诉YOLOv8仅使用训练集:

import os
from ultralytics import YOLO

# 替换为你的prj文件夹绝对路径
os.chdir("C:/your/path/to/prj")

model = YOLO('yolov8n-cls.pt')
# 训练模型
model.train(
    data="train/",
    epochs=100,
    imgsz=64,
    split='train',
    batch=8  # CPU环境建议设置较小批量
)

方法2:使用YAML文件管理数据集(灵活配置)

创建data.yaml文件放在prj目录下,内容如下:

train: ./train  # 训练集相对路径
val: ./val      # 验证集相对路径(无则注释该行)
nc: 2           # 类别总数:发票、收据共2类
names: ['invoice', 'receipt']  # 类别名称,需与文件夹名一一对应

然后修改代码加载该配置:

import os
from ultralytics import YOLO

os.chdir("C:/your/path/to/prj")
model = YOLO('yolov8n-cls.pt')
model.train(data="data.yaml", epochs=100, imgsz=64, batch=8)

3. 验证图像有效性

  • 检查invoice和receipt目录下的图像格式是否为支持类型:.jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif, .tiff, .webp,非图像格式需转换为上述类型
  • 删除目录内的非图像文件(如文本、快捷方式等),避免干扰数据集加载

内容的提问来源于stack exchange,提问作者Gayathri K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:29:56