基于 PyQt5 和YOLO26的目标检测桌面应用程序,支持图片、视频和摄像头实时检测。
功能特性
- 图片检测
- 视频检测
- 摄像头检测
- 模型切换
- 参数调节
- 类别筛选
- 结果导出
- 实时统计
效果展示

训练数据集介绍
数据集格式:YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的yolo格式txt文件)
图片数量(jpg文件个数):5162
标注数量(txt文件个数):5162
训练集数量:4000
验证集数量:1056
测试集数量:106
标注类别数:8
所在github仓库:firc-dataset
标注类别名称(注意yolo格式类别顺序不和这个对应,而以labels文件夹classes.txt为准):[‘LANE CHANGING’,‘LEFT TURN’,‘LEFT TURN WAITING’,‘MOVE STRAIGHT’,‘PULL OVER’,‘RIGHT TURN’,‘SLOW DOWN’,‘STOP’]
每个类别标注的框数:
LANE CHANGING(变道)框数 = 682
LEFT TURN(左转)框数 = 697
LEFT TURN WAITING(左转待转)框数 = 625
MOVE STRAIGHT(直行)框数 = 609
PULL OVER(靠边停车)框数 = 688
RIGHT TURN(右转)框数 = 697
SLOW DOWN(减速)框数 = 773
STOP(停车)框数 = 393
总框数=5164
图片分辨率:640x640
使用标注工具:labelImg
标注规则:对类别进行画矩形框
重要说明:暂无
特别声明:本数据集不对训练的模型或者权重文件精度作任何保证
图片预览:


标注例子:

训练情况介绍
模型在训练集4000张+1056验证集张图片进行训练得到
算法原理
YOLO26 目标检测算法
本项目基于 YOLO26(You Only Look Once v26)
1. 网络架构
YOLO26 采用先进的骨干网络(Backbone)和特征融合网络:
- Backbone
- Neck
- Head
2. 检测流程
- 图像预处理
- 特征提取
- 特征融合
- 预测输出
- 后处理
3. 关键技术
- Anchor-Free 检测
- 动态目标分配(DTA)
- 无DFL设计
- Mosaic 增强
- 端到端无NMS设计
4. 后处理算法
- 置信度过滤
- 类别筛选
环境要求
硬件要求
项目
最低配置
推荐配置
CPU
Intel i5 或同等性能
Intel i7/i9 或 AMD Ryzen 7⁄9
内存
8 GB
16 GB 或以上
显卡
支持 CUDA 的 NVIDIA GPU(可选)
NVIDIA RTX 1660 或以上
显存
4 GB(GPU 推理)
8 GB 或以上
硬盘
2 GB 可用空间
SSD,5 GB 可用空间
软件环境
- 操作系统
- Python
- CUDA
- cuDNN
安装步骤
1. 克隆或下载项目
# 使用 git 克隆,可以在github仓库firc-projects找到完整源码
git clone <项目仓库地址>
# 或直接下载 ZIP 压缩包并解压
2. 创建虚拟环境(推荐)
# 使用 conda 创建
conda create -n YOLO26-det pythnotallow=3.9
conda activate YOLO26-det
# 或使用 venv 创建
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
3. 安装依赖包
# 安装 PyTorch(根据 CUDA 版本选择)
# CUDA 11.8 版本:
pip install torch==2.0.1+cu118 torchvisinotallow==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
# CUDA 12.1 版本:
pip install torch==2.0.1+cu121 torchvisinotallow==0.15.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
# CPU 版本(无显卡):
pip install torch==2.0.1 torchvisinotallow==0.15.2 --extra-index-url https://download.pytorch.org/whl/cpu
# 安装其他依赖
pip install ultralytics==8.4.31
pip install PyQt5==5.15.9
pip install opencv-pythnotallow==4.8.0.74
pip install numpy==1.24.3
4. 准备模型文件
将训练好的 YOLO26 模型文件(.pt 格式)放入 weights/ 目录下:
weights/
├── best.pt # 主要模型文件
├── class_names.txt # 类别名称文件
└── ...
类别名称文件格式
LANE CHANGING LEFT TURN LEFT TURN WAITING MOVE STRAIGHT PULL OVER RIGHT TURN SLOW DOWN STOP
每行一个类别名称,顺序需与模型训练时的类别顺序一致。
运行步骤
启动应用程序
# 激活虚拟环境后
python main.py
使用流程
- 加载模型 :
- 程序启动时会自动加载
weights/ 目录下的默认模型 - 或点击”加载模型”按钮手动选择模型文件
- 选择检测模式 :
- 图片检测
- 视频检测
- 摄像头检测
- 设置参数 (可选):
- 调节”置信度阈值”:控制检测结果的置信度下限(0.1 - 0.9)
- 调节”IOU 阈值”:控制非极大值抑制的重叠度阈值(0.1 - 0.9)
- 选择”类别筛选”:只显示指定类别的检测结果
- 勾选”显示标签与置信度”:控制是否在图像上显示标签
- 开始检测 :
- 点击”开始检测”按钮启动检测
- 检测过程中可点击”停止检测”终止
- 保存结果 :
- 点击”保存结果”保存检测结果图片
- 点击”导出结果”将检测数据导出为 JSON 或 TXT 格式
- 点击”截图保存”快速保存当前画面
注意事项
1. 模型文件
- 确保模型文件(.pt)与类别名称文件(class_names.txt)匹配
- 模型文件路径不能包含中文字符,建议放在项目根目录的
weights/ 文件夹下 - 支持的模型格式:PyTorch (.pt) 和 ONNX (.onnx)
2.GPU加速
- 首次运行时会自动下载 CUDA 相关的预训练权重,可能需要等待几分钟
- 如遇到 CUDA 内存不足错误,请关闭其他占用显存的程序
- 无 NVIDIA 显卡时,程序会自动切换为 CPU 推理,速度较慢
3. 检测参数
- 置信度阈值
- IOU 阈值
- 参数调整会实时生效,无需重新加载模型
4.摄像头检测
- 确保摄像头设备正常工作且未被其他程序占用
- 默认使用摄像头索引 0,如需修改请在代码中调整
camera_index 参数 - 摄像头检测为实时模式,按”停止检测”或关闭窗口即可退出
5. 性能优化
- 视频检测时,检测速度取决于视频分辨率和显卡性能
- 如检测卡顿,可尝试降低输入视频分辨率或更换更高性能的显卡
- 批量图片检测时会顺序处理,建议在处理大量图片前确保磁盘空间充足
6. 常见问题
问题
解决方案
模型加载失败
检查模型文件路径是否正确,确保文件未损坏
无法打开摄像头
检查摄像头连接,确保没有其他程序占用摄像头
CUDA out of memory
减小 batch size,关闭其他程序,或使用 CPU 推理
检测结果不准确
调整置信度和 IOU 阈值,或更换更合适的模型
界面显示异常
确保 PyQt5 正确安装,尝试更新显卡驱动
文件夹结构
YOLO26-det-pyqt5/ # 项目根目录
│
├── main.py # 主程序入口,PyQt5 界面实现
├── Yolov26Detector.py # YOLO26 检测器核心类
├── README.md # 项目说明文档
│
├── weights/ # 模型权重文件夹
│ ├── weights/ # 子文件夹(存放 .pt 模型文件)
│ │ └── best.pt # 默认模型文件
│ ├── class_names.txt # 类别名称列表
│ ├── args.yaml # 训练参数配置
│ ├── data.yaml # 数据集配置
│ ├── results.csv # 训练结果数据
│ ├── results.png # 训练结果图表
│ ├── confusion_matrix.png # 混淆矩阵
│ ├── BoxF1_curve.png # F1 分数曲线
│ ├── BoxP_curve.png # 精确率曲线
│ ├── BoxR_curve.png # 召回率曲线
│ └── ... # 其他训练和验证可视化结果
│
├── test_img/ # 测试图片文件夹
│ ├── firc_1000.jpg # 测试图片示例
│ ├── firc_1001.jpg
│ └── ... # 更多测试图片
│
└── 数据集地址.xlsx # 数据集信息文档
文件说明
文件/文件夹
说明
main.py
应用程序主入口,包含 PyQt5 GUI 界面、多线程检测逻辑、信号槽处理
Yolov26Detector.py
YOLO26 检测核心类,封装模型加载、推理、可视化等功能
weights/
存放模型权重文件和相关配置,是检测功能的核心资源目录
test_img/
提供测试用的示例图片,用于快速验证检测功能
class_names.txt
类别名称定义文件,每行一个类别,顺序需与模型训练时一致
data.yaml
YOLO26 数据集配置文件,包含类别数、类别名称、数据集路径等
技术栈
- Python 3.9+
- PyQt5
- YOLO26(Ultralytics)
- OpenCV
- NumPy
- PyTorch
许可协议
本项目仅供学习和研究使用。
更新日志
v1.0
- 初始版本发布
- 支持图片、视频、摄像头三种检测模式
- 实现参数调节和结果导出功能
- 提供实时 FPS 和统计信息显示