本项目为面向智能辅助驾驶的车道线检测/分割 演示系统,基于 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/trainruns/train
数据集说明
仓库内自带数据集与配置文件:
- 数据集根目录:
datasets/车道线分割数据集/ - 数据集配置:
datasets/车道线分割数据集/data.yaml
该 data.yaml 指向:
train: ../train/imagesval: ../valid/imagestest: ../test/imagesnc: 1names: ['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.ptweights/last.ptresults.csv*.pngargs.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.jsonevaluation_report.csvmetrics_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.yamlruns/:训练、推理、评估输出(会持续增长)
常见问题(Troubleshooting)
- 中文路径/编码问题:建议在 Windows 下使用 UTF-8 环境;若遇到路径或编码异常,尽量将项目放在不含特殊字符的路径下,或使用较新的 Python/系统区域设置。
- 摄像头无法打开:检查是否被其它程序占用;尝试更换摄像头 ID(如 0/1/2)。
- GPU 不生效 :确认
torch.cuda.is_available()为 True,并安装了匹配 CUDA 的 PyTorch。








