# recognize **Repository Path**: sqdaxiang/recognize ## Basic Information - **Project Name**: recognize - **Description**: No description available - **Primary Language**: Unknown - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-13 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能视觉识别平台 基于 **Spring Boot 3 + React + YOLOv8** 的智能视觉识别平台,支持目标检测模型的训练、管理和实时推理,适用于工业质检、安防监控、合规检测等场景。 ## 功能概览 ### 智能识别 | 功能 | 说明 | |------|------| | **图片识别** | 上传图片进行目标检测,支持选择模型和合规规则,展示检测框、置信度和违规信息 | | **视觉识别** | 调用本地摄像头实时识别,支持置信度阈值调节、识别间隔设置、告警记录 | | **视频识别** | 上传视频文件或输入视频流地址,后台异步逐帧检测 | ### 模型训练 | 功能 | 说明 | |------|------| | **训练图片管理** | 上传和管理训练图片,支持 YOLO 格式标注 | | **训练任务管理** | 创建训练任务,选择模型架构、设置超参数,实时查看训练进度和 Epoch | | **ONNX 导出** | 训练完成后自动导出 ONNX 模型,供推理引擎使用 | ### 模型管理 | 功能 | 说明 | |------|------| | **AI 模型配置** | 管理模型基本信息、置信度阈值、NMS 阈值 | | **模型类型管理** | 维护检测模型的分类体系 | | **合规规则管理** | 配置检测规则,定义违规条件和告警策略 | ### 运维监控 | 功能 | 说明 | |------|------| | **工作台仪表盘** | 展示系统概览统计、最近训练任务、告警趋势 | | **报警记录** | 分页查询告警记录,按来源类型筛选,支持告警处理和备注 | | **视频任务管理** | 管理视频流/文件检测任务,查看运行状态和处理进度 | ## 技术栈 ### 后端 - **Java 17** + **Spring Boot 3.5** - **MyBatis-Plus** — ORM 和数据访问 - **Sa-Token** — 权限认证 - **Snowy 3.0** — 基础框架(用户、角色、菜单等) - **Python + Ultralytics (YOLOv8)** — 模型训练与推理 - **持久化推理引擎** — 常驻 Python Worker 进程,模型只加载一次,推理延迟 < 500ms ### 前端 - **React 17** + **TypeScript** - **Arco Design** — UI 组件库 - **Vite** — 构建工具 - **BizCharts** — 图表可视化 - **Less** — 样式预处理 ### 推理架构 ``` 前端 → REST API → Java 后端 → stdin/stdout → Python Worker (YOLOv8 ONNX Runtime) ↑ 模型只加载一次,复用推理 ``` ## 项目结构 ``` recognize/ ├── recognize-backend/ # 后端工程 (Maven 多模块) │ ├── snowy-common/ # 通用工具模块 │ ├── snowy-plugin/ # 基础插件 (用户、角色、权限等) │ ├── snowy-plugin-api/ # 插件 API 接口 │ ├── snowy-recognize/ # 🔑 智能识别核心模块 │ │ └── src/main/java/.../modular/ │ │ ├── alarm/ # 报警记录管理 │ │ ├── config/ # 系统配置 │ │ ├── model/ # AI 模型管理 │ │ ├── recognition/ # 识别引擎 & API │ │ ├── rule/ # 合规规则 │ │ ├── train/ # 模型训练 │ │ ├── video/ # 视频任务 │ │ └── view/ # 数据视图 │ └── snowy-web-app/ # 主启动模块 │ ├── recognize-front/ # 前端工程 (React + Vite) │ └── src/pages/ │ ├── dashboard/workplace/ # 工作台仪表盘 │ ├── recognize/ # 智能识别 │ │ ├── recognition/ # 图片识别 │ │ ├── visual/ # 视觉识别 (摄像头) │ │ ├── alarm/ # 报警记录 │ │ ├── model/ # 模型管理 │ │ ├── model-type/ # 模型类型 │ │ ├── rule/ # 规则管理 │ │ └── config/ # 系统配置 │ ├── train/ # 模型训练 │ │ ├── image/ # 训练图片管理 │ │ └── task/ # 训练任务管理 │ └── video/task/ # 视频任务管理 │ └── .gitignore ``` ## 环境要求 | 依赖 | 版本 | 说明 | |------|------|------| | **JDK** | 17+ | 后端运行环境 | | **Maven** | 3.8+ | 后端构建 | | **Node.js** | 16+ | 前端构建 | | **Python** | 3.8+ | 模型训练与推理 | | **MySQL** | 8.0+ | 数据库 | | **ultralytics** | 最新版 | `pip install ultralytics` | | **onnxruntime** | 最新版 | `pip install onnxruntime` | ## 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/your-repo/recognize.git cd recognize ``` ### 2. 后端启动 ```bash cd recognize-backend # 配置数据库连接(修改 application.yml) # snowy-web-app/src/main/resources/application.yml # 编译 & 启动 mvn clean package -DskipTests java -jar snowy-web-app/target/snowy-web-app-3.0.0.jar ``` 后端默认运行在 `http://localhost:56` ### 3. 前端启动 ```bash cd recognize-front # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端默认访问 `http://localhost:5173`,API 代理到后端 `http://localhost:56` ### 4. Python 环境 ```bash # 安装推理和训练依赖 pip install ultralytics onnxruntime opencv-python # (可选)在系统配置中设置 Python 路径 # 管理后台 → 系统配置 → python_env_path ``` ## 使用流程 ``` 1. 模型管理 → 创建 AI 模型(如"纸壳检测模型") ↓ 2. 训练图片 → 上传标注好的训练数据 ↓ 3. 训练任务 → 选择模型 + 数据集,开始训练 ↓ 4. 训练完成 → 自动生成 ONNX 模型文件 ↓ 5. 智能识别 → 选择模型 + ONNX,上传图片 / 开启摄像头 / 提交视频 ↓ 6. (可选)规则管理 → 配置合规规则,自动触发告警 ↓ 7. 报警记录 → 查看和处理违规告警 ``` ## 核心特性 - **持久化推理引擎** — Python Worker 常驻进程,首次推理约 2-3s(加载模型),后续每帧 < 500ms - **实时摄像头识别** — 浏览器调用 WebRTC 摄像头,前端截帧发送后端推理,Canvas 实时绘制检测框 - **前端置信度过滤** — 实时滑块调节置信度阈值,过滤低置信度误检 - **异步视频处理** — 视频文件逐帧抽取检测,后台异步执行,不阻塞前端 - **合规规则引擎** — 支持自定义检测规则,自动判定违规并生成告警记录 - **训练进度监控** — 实时解析 YOLO 训练日志,展示 Epoch 进度和损失值 ## 许可证 本项目基于 [Snowy](https://gitee.com/xiaonuobase/snowy) 开源框架开发,遵循 Apache License 2.0 许可证。