基于YOLO26算法+DeepSeek_qwen大模型的智慧铁路要素缺陷巡检分析系统
YOLO+DeepSeek铁路要素缺陷分析系统设计说明书
检测全类别 涉及:铁轨 车轮 紧固件等
1.钢轨断裂-高风险2.钢轨断裂-低风险3.钢轨断裂-中风险4.钢轨腐蚀-高风险5.钢轨腐蚀-低风险6.钢轨腐蚀-中风险7.轨头核伤-高风险8.轨头核伤-低风险9.轨头核伤-中风险10.铁路鱼尾板缺陷-高风险11.铁路鱼尾板缺陷-低风险12.铁路鱼尾板缺陷-中风险13.钢轨踏面剥离-高风险14.钢轨踏面剥离-低风险15.钢轨踏面剥离-中风险16.存在缺陷17.无缺陷18.缺陷-故障鱼尾板19.缺陷-扣件缺失20.缺陷-轨道断裂21.缺陷-轨道裂纹22.轴箱-ICF型23.轴箱-LHB型24.轴箱-VB型25.轴箱-货车通用型26.转向架构架-LHB型27.转向架构架-VB型28.转向架构架-货车通用型29.摇枕空气悬挂-LHB型30.摇枕梁-LHB型31.摇枕空气悬挂-VB型32.制动指示器-LHB型33.控制臂-LHB型34.控制臂-VB型35.脚踏板-LHB型36.悬挂杆-ICF型37.横摆阻尼器连杆-LHB型38.一系弹簧-ICF型39.一系弹簧-LHB型40.一系弹簧-VB型41.一系悬挂-VB型42.二系弹簧-ICF型43.二系弹簧-LHB型44.下悬式水箱-LHB型45.弹簧梁-货车通用型46.弹簧组件-货车通用型47.摆杆-ICF型48.摆杆-LHB型49.卫生间箱体-LHB型50.垂向阻尼器-ICF型51.垂向阻尼器-VB型52.垂向阻尼器-LHB型53.车轮防滑保护线缆-LHB型54.车轮防滑保护线缆-VB型55.供水管路-LHB型56.横摆阻尼器框架-LHB型57.横摆阻尼器框架-VB型58.横摆阻尼器-LHB型59.横摆阻尼器-VB型60.裂纹-划痕61.变色62.表面剥落63.车轮64.破损65.紧固件66.缺失1. 系统概述
### 1.1 系统简介
本系统是一个基于深度学习的铁路要素缺陷检测与分析平台,采用YOLO目标检测算法结合大语言模型(DeepSeek、Qwen)实现智能化的铁路缺陷识别与分析。系统支持图像、视频和实时摄像头检测,并提供AI智能分析建议。
1.2 系统目标
- 实现铁路要素缺陷的自动化检测
- 提供多模态检测支持(图片、视频、实时摄像头)
- 集成大语言模型进行智能分析
- 提供完整的数据管理和历史记录功能
- 支持批量处理和实时监控
2. 系统架构设计
2.1 整体架构
系统采用前后端分离的微服务架构,主要包含以下层次:
┌─────────────────────────────────────────────────────────┐ │ 前端展示层 │ │ (Web界面/移动端) │ └────────────────────┬────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────┐ │ API网关层 │ │ (SpringBoot - 端口9999) │ │ - 请求路由 - 文件管理 - 数据存储 - 用户管理 │ └────────────────────┬────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────┐ │ 业务逻辑层 │ │ (Flask - 端口5000) │ │ - YOLO推理 - AI分析 - 实时流处理 - 批量处理 │ └────────────────────┬────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────┐ │ 数据存储层 │ │ - MySQL数据库 - 文件存储系统 - 模型权重文件 │ └─────────────────────────────────────────────────────────┘2.2 技术架构
2.2.1 后端服务
SpringBoot服务(端口9999)
- 负责API转发和请求路由
- 文件上传下载管理
- 数据持久化存储
- 用户认证和权限管理
Flask服务(端口5000)
- YOLO模型推理引擎
- AI大模型接口集成
- 实时视频流处理
- WebSocket实时通信
2.2.2 通信机制
- RESTful API: 前端与SpringBoot之间的HTTP通信
- HTTP请求: SpringBoot与Flask之间的服务调用
- WebSocket: 实时进度推送和状态通知
- 视频流: MJPEG格式的实时视频传输
3. 功能模块设计
3.1 图片缺陷检测模块
3.1.1 单张图片检测
功能描述: 对上传的单张铁路图片进行缺陷检测
核心流程:
- 前端上传图片到SpringBoot文件服务
- 获取图片URL后调用Flask预测接口
- Flask下载图片并使用YOLO模型进行推理
- 返回检测结果(标签、置信度、处理时间)
- 可选调用DeepSeek/Qwen进行AI分析
- 保存检测记录到数据库
关键接口:
POST /flask/predict: 图片预测接口POST /files/upload: 文件上传接口
数据结构:
{"username":"用户名","weight":"模型权重文件名","conf":"置信度阈值","startTime":"开始时间","inputImg":"输入图片URL","ai":"AI模型选择(DeepSeek/Qwen/不使用)"}3.1.2 批量图片检测
功能描述: 对上传的图片文件夹进行批量缺陷检测
核心流程:
- 前端上传压缩文件夹到SpringBoot
- Flask下载并解压文件夹
- 遍历所有图片文件进行YOLO推理
- 逐张保存检测结果到数据库
- 返回批量检测结果汇总
关键接口:
POST /predictImgBatch: 批量预测接口POST /files/uploadFolder: 文件夹上传接口
3.2 视频缺陷检测模块
3.2.1 视频文件检测
功能描述: 对上传的视频文件进行逐帧缺陷检测
核心流程:
- 下载视频文件到本地
- 使用OpenCV逐帧读取视频
- 对每一帧进行YOLO推理
- 实时绘制检测框并编码为MJPEG流
- 同时写入处理后的视频文件
- 完成后转换格式并上传
- 保存检测记录
技术实现:
- 视频流式处理,边处理边返回
- 使用FFmpeg进行视频格式转换
- WebSocket推送处理进度
关键接口:
GET /predictVideo: 视频预测接口(流式返回)
#### 3.2.2 摄像头实时检测
功能描述: 连接摄像头进行实时铁路缺陷检测
核心流程:
- 打开本地摄像头(默认摄像头0)
- 设置视频参数(分辨率640x480,帧率20fps)
- 实时捕获视频帧
- 逐帧进行YOLO推理
- 实时返回检测结果流
- 支持手动停止录制
- 自动保存和上传检测视频
技术实现:
- 使用OpenCV VideoCapture捕获摄像头
- 实时视频流传输
- 支持录制和保存功能
关键接口:
GET /predictCamera: 摄像头预测接口GET /stopCamera: 停止摄像头接口
3.3 AI智能分析模块
3.3.1 DeepSeek分析
功能描述: 使用DeepSeek大语言模型对检测结果进行智能分析
核心流程:
- 获取YOLO检测到的缺陷标签
- 构建分析提示词
- 调用DeepSeek API进行分析
- 返回智能建议和分析结果
API集成:
- 基础URL:
https://api.deepseek.com - 模型:
deepseek-chat - 认证方式: API Key
3.3.2 Qwen分析
功能描述: 使用Qwen大语言模型进行智能分析
核心流程:
- 获取YOLO检测到的缺陷标签
- 构建分析提示词
- 调用Qwen API进行分析
- 返回智能建议和分析结果
API集成:
- 基础URL:
https://api.siliconflow.cn/v1/chat/completions - 模型:
Qwen/Qwen2.5-14B-Instruct - 认证方式: Bearer Token
3.4 文件管理模块
3.4.1 文件上传
功能描述: 支持单文件和文件夹上传
实现方式:
- 单文件上传: 直接保存并返回访问URL
- 文件夹上传: 接收ZIP压缩包,解压后保存
- 使用UUID生成唯一文件名避免冲突
关键接口:
POST /files/upload: 单文件上传POST /files/uploadFolder: 文件夹上传
#### 3.4.2 文件下载
功能描述: 支持单文件和文件夹下载
实现方式:
- 单文件下载: 直接返回文件流
- 文件夹下载: 动态打包为ZIP返回
- 支持断点续传和分块传输
关键接口:
GET /files/{flag}: 文件/文件夹下载GET /files/{flag}/{filename}: 文件夹内文件下载
3.5 数据管理模块
3.5.1 图片记录管理
功能描述: 管理图片检测的历史记录
数据字段:
- id: 主键
- username: 用户名
- weight: 使用的模型权重
- inputImg: 输入图片URL
- outImg: 输出图片URL
- confidence: 置信度
- label: 检测标签
- allTime: 处理时间
- conf: 置信度阈值
- ai: 使用的AI模型
- suggestion: AI建议
- startTime: 开始时间
3.5.2 视频记录管理
功能描述: 管理视频检测的历史记录
数据字段:
- id: 主键
- username: 用户名
- weight: 使用的模型权重
- inputVideo: 输入视频URL
- outVideo: 输出视频URL
- conf: 置信度阈值
- startTime: 开始时间
3.5.3 摄像头记录管理
功能描述: 管理摄像头检测的历史记录
数据字段:
- id: 主键
- username: 用户名
- weight: 使用的模型权重
- outVideo: 输出视频URL
- conf: 置信度阈值
- startTime: 开始时间
3.6 实时通信模块
3.6.1 WebSocket通信
功能描述: 实现服务器到客户端的实时消息推送
应用场景:
- 处理进度通知
- 状态更新通知
- 完成通知
事件类型:
connect: 连接建立disconnect: 连接断开message: 普通消息progress: 进度更新
4. 数据库设计
4.1 数据库表结构
4.1.1 imgrecords表(图片检测记录)
CREATETABLEimgrecords(idINTAUTO_INCREMENTPRIMARYKEY,usernameVARCHAR(255),weightVARCHAR(255),inputImgTEXT,outImgTEXT,confidenceTEXT,allTimeVARCHAR(50),confVARCHAR(50),labelTEXT,aiVARCHAR(50),suggestionTEXT,startTimeDATETIME);4.1.2 videorecords表(视频检测记录)
CREATETABLEvideorecords(idINTAUTO_INCREMENTPRIMARYKEY,usernameVARCHAR(255),weightVARCHAR(255),inputVideoTEXT,outVideoTEXT,confVARCHAR(50),startTimeDATETIME);4.1.3 camerarecords表(摄像头检测记录)
CREATETABLEcamerarecords(idINTAUTO_INCREMENTPRIMARYKEY,usernameVARCHAR(255),weightVARCHAR(255),outVideoTEXT,confVARCHAR(50),startTimeDATETIME);4.1.4 user表(用户表)
CREATETABLEuser(idINTAUTO_INCREMENTPRIMARYKEY,usernameVARCHAR(255),passwordVARCHAR(255));4.2 数据库配置
- 数据库类型: MySQL
- 连接池: MyBatis Plus
- ORM框架: MyBatis Plus
- 配置文件: application.properties
5. 接口设计
5.1 Flask服务接口(端口5000)
5.1.1 预测相关接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/predictImg | POST | 单张图片预测 |
/predictImgBatch | POST | 批量图片预测 |
/predictVideo | GET | 视频预测(流式) |
/predictCamera | GET | 摄像头实时预测 |
/stopCamera | GET | 停止摄像头预测 |
5.1.2 模型管理接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/file_names | GET | 获取可用模型列表 |
5.2 SpringBoot服务接口(端口9999)
5.2.1 预测转发接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/flask/predict | POST | 图片预测转发 |
/flask/file_names | GET | 模型列表转发 |
5.2.2 文件管理接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/files/upload | POST | 单文件上传 |
/files/uploadFolder | POST | 文件夹上传 |
/files/{flag} | GET | 文件/文件夹下载 |
/files/{flag}/{filename} | GET | 文件夹内文件下载 |
5.2.3 数据管理接口
| 接口路径 | 方法 | 功能描述 |
|---|---|---|
/imgRecords | GET/POST | 图片记录查询/添加 |
/videoRecords | GET/POST | 视频记录查询/添加 |
/cameraRecords | GET/POST | 摄像头记录查询/添加 |
6. 技术选型
6.1 后端技术栈
- SpringBoot: Java企业级应用框架
- Flask: Python轻量级Web框架
- MyBatis Plus: 数据持久化框架
- Ultralytics YOLO: 目标检测模型框架
- OpenCV: 图像和视频处理库
- WebSocket: 实时通信协议
6.2 AI技术栈
- YOLO11: 目标检测算法
- DeepSeek: 大语言模型API
- Qwen: 通义千问大语言模型API
- OpenAI SDK: API调用SDK
6.3 工具库
- requests: HTTP请求库
- cv2: OpenCV Python绑定
- flask_socketio: WebSocket支持
- hutool: Java工具库
- fastjson: JSON处理库
6.4 视频处理
- FFmpeg: 视频格式转换
- MJPEG: 视频流编码格式
7. 核心算法设计
7.1 YOLO目标检测算法
7.1.1 模型加载
model=YOLO(weights_path)7.1.2 推理参数
conf: 置信度阈值(默认0.5)device: 推理设备(CPU)imgsz: 输入图像尺寸(640x640)save_conf: 保存置信度信息
7.1.3 结果处理
- 提取检测框、置信度和类别
- 绘制检测结果到原图
- 返回结构化结果数据
7.2 AI分析算法
7.2.1 提示词构建
我使用yolo对铁路要素缺陷进行检测。接下来我会告诉你检测到了哪些缺陷。 请帮我分析检测到的缺陷,只需回答我要的结果。这是我检测到的结果: [缺陷标签1],[缺陷标签2],...7.2.2 结果处理
- 去除重复标签
- 过滤"正常"标签(当存在其他缺陷时)
- 生成智能分析建议
8. 部署架构
8.1 部署环境
- 操作系统: Windows/Linux
- Python版本: 3.8+
- Java版本: JDK 8+
- 数据库: MySQL 5.7+
8.2 服务部署
┌─────────────────────────────────────┐ │ Nginx (可选) │ │ 负载均衡/反向代理 │ └──────────────┬──────────────────────┘ │ ┌──────────┴──────────┐ │ │ ┌───▼────┐ ┌────▼────┐ │Flask │ │SpringBoot│ │:5000 │ │:9999 │ └───┬────┘ └────┬─────┘ │ │ └────────┬───────────┘ │ ┌──────▼──────┐ │ MySQL │ │ :3306 │ └─────────────┘8.3 目录结构
YOLO+DeepSeek铁路要素缺陷分析系统/ ├── Detection_flask/ # Flask服务 │ ├── main.py # 主程序 │ ├── train.py # 模型训练 │ ├── export.py # 模型导出 │ ├── utils/ # 工具模块 │ │ ├── predictImg.py # 图片预测 │ │ ├── predictBatch.py # 批量预测 │ │ ├── chatApi.py # AI接口 │ │ └── Fun.py # 通用工具 │ ├── weights/ # 模型权重 │ ├── train/ # 训练结果 │ └── dataset/ # 数据集 └── Detection_springboot/ # SpringBoot服务 ├── src/main/java/ │ └── com/example/Kcsj/ │ ├── controller/ # 控制器 │ ├── entity/ # 实体类 │ ├── mapper/ # 数据访问层 │ └── common/ # 公共类 └── files/ # 文件存储目录9. 系统特性
9.1 高性能
- YOLO模型CPU推理优化
- 视频流式处理,边处理边返回
- 批量处理支持
- 异步任务处理
9.2 可扩展性
- 模块化设计,易于扩展新功能
- 支持多种YOLO模型切换
- AI模型可插拔设计
- 微服务架构,易于水平扩展
9.3 实时性
- WebSocket实时通信
- 视频流实时传输
- 进度实时推送
- 摄像头实时检测
9.4 易用性
- 统一的API接口
- 完善的错误处理
- 详细的结果返回
- 历史记录查询
10. 安全设计
10.1 接口安全
- CORS跨域配置
- 请求参数验证
- 异常处理机制
10.2 数据安全
- 文件上传类型限制
- 文件大小限制
- 数据库连接池管理
- SQL注入防护(MyBatis Plus)
10.3 API密钥管理
- DeepSeek API Key配置
- Qwen API Key配置
- 密钥不应硬编码在代码中
11. 性能优化
11.1 模型优化
- 使用ONNX格式模型
- CPU推理优化
- 模型量化(可选)
11.2 视频处理优化
- FFmpeg硬件加速
- 视频流式传输
- 分块处理大文件
11.3 数据库优化
- 索引优化
- 连接池配置
- 批量操作支持
12. 监控与日志
12.1 日志记录
- 预测过程日志
- 错误日志
- 性能日志
12.2 监控指标
- 推理时间
- API响应时间
- 系统资源使用率
- 错误率统计
设计说明: 本系统采用微服务架构,结合YOLO目标检测和大语言模型技术,实现了铁路要素缺陷的智能检测与分析。系统具有良好的扩展性和实时性,能够满足铁路安全监测的实际需求。
