车道线检测系统(YOLOv8-Seg + PyQt6 GUI)

本项目为面向智能辅助驾驶的车道线检测/分割 演示系统,基于 Ultralytics YOLOv8 (seg) 完成车道线分割,并提供 PyQt6 图形化界面(登录/注册、图片/视频/摄像头检测、历史记录)。


功能简介

  • GUI 一键检测:支持图片、视频、本地摄像头实时检测
  • 模型训练:使用 YOLOv8 分割模型训练车道线数据集
  • 推理脚本:命令行对单图/文件夹/视频推理并保存结果
  • 评估脚本:对验证集/测试集进行指标评估并生成报告与图表
  • 本地数据存储 :用户信息、检测历史使用 JSON 存储在 data/

环境依赖

  • Python :建议 3.9+

  • 依赖安装

    pip install -r requirements.txt

说明:

  • requirements.txt 里包含 ultralytics / torch / PyQt6 / opencv-python 等基础依赖。
  • GPU/CUDA :若需 GPU 训练/推理,请按你本机 CUDA 版本安装匹配的 torch/torchvision(官方安装指引见 https://pytorch.org/get-started/locally/)。

快速开始(GUI)

在项目根目录运行:

复制代码
python main.py

默认账号

  • 用户名:admin
  • 密码:123456

流程:

  • 启动后进入 登录/注册 页面
  • 登录成功进入主界面,可进行:
    • 图片/视频检测
    • 摄像头实时检测
    • 历史记录查看
    • 切换模型权重(侧边栏"选择其他模型")

默认模型

主界面会优先尝试加载仓库内的默认最佳模型:

  • runs/segment/runs/train/lane_detection_20260131_155304/weights/best.pt

若该文件不存在,程序会在以下目录内递归搜索 best.pt 并自动加载:

  • runs/segment/runs/train
  • runs/train

数据集说明

仓库内自带数据集与配置文件:

  • 数据集根目录:datasets/车道线分割数据集/
  • 数据集配置:datasets/车道线分割数据集/data.yaml

data.yaml 指向:

  • train: ../train/images
  • val: ../valid/images
  • test: ../test/images
  • nc: 1
  • names: ['lane-lines']

训练(Train)

直接运行训练脚本(已内置默认参数):

复制代码
python train.py

关键默认参数(可在 train.py 内修改):

  • 模型:yolov8n-seg.pt
  • 训练轮数:epochs=100
  • 图像尺寸:imgsz=640
  • batch:batch=16
  • 设备:自动选择 GPU(0)cpu

训练输出目录默认在:

  • runs/train/lane_detection_YYYYMMDD_HHMMSS/
    • weights/best.pt
    • weights/last.pt
    • results.csv
    • *.png
    • args.yaml

推理(Predict)

1)命令行推理

对单张图片 / 文件夹 / 视频推理:

复制代码
python predict.py --model "runs/segment/runs/train/lane_detection_20260131_155304/weights/best.pt" --source "datasets/车道线分割数据集/test/images"

常用参数:

  • --conf:置信度阈值(默认 0.25)
  • --iou:NMS IOU 阈值(默认 0.7)
  • --save_dir:结果保存目录(默认 runs/predict

2)GUI 推理

GUI 内选择图片/视频/摄像头后即可检测,结果默认保存到:

  • runs/detect/gui_detect/

评估(Evaluate)

对验证集与测试集分别评估并生成报告:

复制代码
python evaluate.py --model "runs/segment/runs/train/lane_detection_20260131_155304/weights/best.pt" --data "datasets/车道线分割数据集/data.yaml"

输出目录默认在:

  • runs/evaluate/report_YYYYMMDD_HHMMSS/
    • evaluation_report.json
    • evaluation_report.csv
    • metrics_comparison.png

本地数据文件(data/)

  • data/users.json:用户信息(密码使用 sha256 哈希存储)
  • data/history.json:检测历史记录(来源、结果路径、模型路径、统计信息、时间戳等)
  • data/models.json:模型列表(GUI 可用于显示/默认模型配置)

目录结构(简要)

  • main.py:GUI 启动入口(登录窗口 → 主窗口)
  • gui/:PyQt6 界面(登录、主界面、历史记录组件)
  • utils/detection.py:检测封装(图片/视频/摄像头帧)
  • utils/database.py:本地 JSON "数据库"
  • train.py:训练脚本
  • predict.py:推理脚本
  • evaluate.py:评估脚本
  • datasets/:数据集与 data.yaml
  • runs/:训练、推理、评估输出(会持续增长)

常见问题(Troubleshooting)

  • 中文路径/编码问题:建议在 Windows 下使用 UTF-8 环境;若遇到路径或编码异常,尽量将项目放在不含特殊字符的路径下,或使用较新的 Python/系统区域设置。
  • 摄像头无法打开:检查是否被其它程序占用;尝试更换摄像头 ID(如 0/1/2)。
  • GPU 不生效 :确认 torch.cuda.is_available() 为 True,并安装了匹配 CUDA 的 PyTorch。

相关推荐
计算机编程-吉哥16 小时前
深度学习:我用YOLO11-L做了一个水下垃圾检测系统 对比YOLOv8-L/Faster R-CNN【计算机毕业设计选题推荐】
人工智能·深度学习·yolo·课程设计·计算机毕业设计选题
AI棒棒牛18 小时前
YOLO26最新创新改进系列:融合 E3AD 认知注意力 Neck:具身认知增强的 FPN/PAN 特征选择机制,高效创新!
人工智能·yolo·计算机视觉·yolo26
hans汉斯20 小时前
数据挖掘|基于BP神经网络的少数民族村寨文化型旅游体验产品潜在游客挖掘
深度学习·神经网络·算法·yolo·软件工程·bp·汉斯出版社
JAI科研2 天前
YOLO 完全指南(七):YOLO识别工程化 (上)
人工智能·深度学习·神经网络·yolo·目标检测·计算机视觉·transformer
JarmanYuo2 天前
YOLO 涨点研究(十二):具身 CV 进阶篇——Sim2Real 域随机化与真机部署
人工智能·pytorch·python·yolo·计算机视觉
YOLO数据集集合2 天前
无人船视角水面目标检测数据集 |无人船 USV 水面目标检测 自主航行 避障 水域监测 目标检测9076期
深度学习·yolo·目标检测·无人机·无人机视角·无人船·自主航线
YOLO数据集集合2 天前
渔船船只检测数据集 | 船只检测 渔船识别 拖船检测 海事监管 目标检测 YOLO格式 深度学习数据集 计算机视觉9076期
人工智能·深度学习·yolo·目标检测·计算机视觉
AI吃大瓜3 天前
人脸检测和行人检测4:Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码,可实时检测)
android·yolo·人脸检测·人体检测·行人检测·yolo26
飞猫的边缘AI3 天前
边缘AI-13:从YOLOv1到YOLO26:目标检测是怎么进化的
人工智能·yolo·目标检测·ai算法·边缘ai·yolo26
稷下元歌4 天前
工业视觉实战:从标注数据到格式转换到工业质检基础,yolo识别编
yolo