项目背景
在纺织制造行业中,表面缺陷检测是把控品质、减少次品流出的关键环节。传统人工检测存在效率低、主观性强、易遗漏细微缺陷等弊端,而算法开发又面临门槛高、调试周期长的问题。本项目旨在提供一套开箱即用的一站式解决方案,集成了 YOLO 多版本模型加载、图片/视频/摄像头实时分析、数据导出及历史追溯功能。
系统功能演示
用户登录与主界面
系统采用简洁的登录验证机制。主界面布局合理,左侧为功能操作区,中间展示检测画面,右侧呈现目标详细信息,交互流畅。
个人信息与权限管理
支持用户修改密码或更换头像。管理员端可编辑、删除用户信息,实现对用户的有效管理。
多模态检测与结果处理
系统支持图片、视频及摄像头实时画面的目标检测。识别结果会在画面中标注,并带有语音播报提醒。下方列表逐项列出检测结果,点击具体目标可查看类别、置信度及坐标。
检测结果支持保存为带标注的新图片或视频,同时可将所有数据导出至 Excel,方便后续查看与分析。
模型切换与历史记录
内置多种已训练模型,用户可根据场景灵活切换以对比效果。系统记录识别历史,支持单条或多条浏览、删除,便于追溯。
模型训练核心代码
本脚本是一个批量训练工具,主要解决了数据集路径配置和预训练模型加载的问题。它会自动将相对路径修正为绝对路径,确保 Ultralytics 库能正确定位数据,并按设定参数一键启动多个版本的训练任务。
# -*- coding: utf-8 -*-
"""
该脚本用于执行 YOLO 模型的训练。
它会自动处理以下任务:
1. 动态修改数据集配置文件 (data.yaml),将相对路径更新为绝对路径。
2. 从 'pretrained' 文件夹加载指定的预训练模型。
3. 使用预设的参数(如 epochs, imgsz, batch)启动训练过程。
"""
import os
import yaml
from pathlib import Path
from ultralytics import YOLO
def ():
models_to_train = [
{: , : },
{: , : },
{: , : },
{: , : }
]
current_dir = os.path.abspath(os.getcwd())
data_yaml_path = os.path.join(current_dir, , )
(data_yaml_path, , encoding=) f:
data_config = yaml.safe_load(f)
data_config[] = os.path.join(current_dir, )
(data_yaml_path, , encoding=) f:
yaml.dump(data_config, f, default_flow_style=, allow_unicode=)
model_info models_to_train:
model_name = model_info[]
train_name = model_info[]
()
pretrained_model_path = os.path.join(current_dir, , model_name)
os.path.exists(pretrained_model_path):
()
:
model = YOLO(pretrained_model_path)
()
model.train(
data=data_yaml_path,
epochs=,
imgsz=,
batch=,
name=train_name
)
()
Exception e:
()
__name__ == :
main()


