<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Yolo | Liu chen chen CV</title><link>https://liuchenlili.github.io/tags/yolo/</link><atom:link href="https://liuchenlili.github.io/tags/yolo/index.xml" rel="self" type="application/rss+xml"/><description>Yolo</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 22 Aug 2025 00:00:00 +0000</lastBuildDate><image><url>https://liuchenlili.github.io/media/logo.svg</url><title>Yolo</title><link>https://liuchenlili.github.io/tags/yolo/</link></image><item><title>Yolo-AI</title><link>https://liuchenlili.github.io/projects/yolo/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><guid>https://liuchenlili.github.io/projects/yolo/</guid><description>&lt;h1 id="yolo目标检测系统"&gt;YOLO目标检测系统&lt;/h1&gt;
&lt;p&gt;基于yolo的智能目标检测系统，支持图片、视频和实时摄像头检测。&lt;/p&gt;
&lt;p&gt;github地址：https://github.com/liuchenlili/yoloaiv3&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bilibili演示视频demo:&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="w-full h-auto aspect-video relative"&gt;
&lt;iframe src="//player.bilibili.com/player.html?bvid=BV1u4t8zsEz2&amp;page=1&amp;autoplay=0"
allow="accelerometer; clipboard-write; encrypted-media; gyroscope; fullscreen; picture-in-picture;"
class="w-full h-full"
&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="项目概述"&gt;项目概述&lt;/h2&gt;
&lt;p&gt;这是一个完整的目标检测解决方案，包含以下组件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI检测服务&lt;/strong&gt; (Python Flask + YOLOv8)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后端API服务&lt;/strong&gt; (Java Spring Boot + MySQL)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端界面&lt;/strong&gt; (Vue3 + TypeScript + Element Plus)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库&lt;/strong&gt; (MySQL + Redis)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="技术栈"&gt;技术栈&lt;/h2&gt;
&lt;h3 id="ai检测服务"&gt;AI检测服务&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Flask 2.3.3&lt;/li&gt;
&lt;li&gt;YOLOv8 (Ultralytics)&lt;/li&gt;
&lt;li&gt;OpenCV&lt;/li&gt;
&lt;li&gt;WebSocket (Flask-SocketIO)&lt;/li&gt;
&lt;li&gt;Celery (异步任务处理)&lt;/li&gt;
&lt;li&gt;Redis (缓存和任务队列)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="后端服务"&gt;后端服务&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Spring Boot 3.2.0&lt;/li&gt;
&lt;li&gt;Spring Security + JWT&lt;/li&gt;
&lt;li&gt;Spring Data JPA&lt;/li&gt;
&lt;li&gt;MySQL 8.0&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Swagger/OpenAPI&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="前端界面"&gt;前端界面&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Vue 3.3.8&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Element Plus 2.4.2&lt;/li&gt;
&lt;li&gt;Vue Router 4&lt;/li&gt;
&lt;li&gt;Pinia (状态管理)&lt;/li&gt;
&lt;li&gt;ECharts (数据可视化)&lt;/li&gt;
&lt;li&gt;Axios (HTTP客户端)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="功能特性"&gt;功能特性&lt;/h2&gt;
&lt;h3 id="-检测功能"&gt;🎯 检测功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;图片检测&lt;/strong&gt;: 支持多种图片格式，批量检测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视频检测&lt;/strong&gt;: 逐帧分析，生成结果视频&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时检测&lt;/strong&gt;: 摄像头实时画面检测&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-模型管理"&gt;🤖 模型管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模型上传&lt;/strong&gt;: 支持上传自定义训练的.pt模型文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型列表&lt;/strong&gt;: 卡片式展示所有可用模型，显示名称和大小&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型切换&lt;/strong&gt;: 一键激活不同的模型进行检测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型详情&lt;/strong&gt;: 查看模型架构、类别数量、参数等详细信息&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-模型训练"&gt;🎓 模型训练&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自定义训练&lt;/strong&gt;: 使用自己的数据集训练YOLO模型&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练参数配置&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时监控&lt;/strong&gt;: WebSocket实时显示训练进度和指标&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练日志&lt;/strong&gt;: 详细的训练过程日志记录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指标可视化&lt;/strong&gt;: 实时图表显示损失、精度、召回率等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-用户管理"&gt;🔒 用户管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户注册/登录/权限管理&lt;/li&gt;
&lt;li&gt;JWT认证和刷新机制&lt;/li&gt;
&lt;li&gt;角色分离 (管理员/普通用户)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-数据分析"&gt;📊 数据分析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;检测结果统计和可视化&lt;/li&gt;
&lt;li&gt;实时仪表板&lt;/li&gt;
&lt;li&gt;历史记录查询和筛选&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-系统管理"&gt;⚙️ 系统管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;多模型支持 (YOLOv8n/s/m/l/x) 支持自定义训练模型和架构&lt;/li&gt;
&lt;li&gt;文件存储和清理&lt;/li&gt;
&lt;li&gt;系统日志和监控&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="快速开始"&gt;快速开始&lt;/h2&gt;
&lt;h3 id="环境要求"&gt;环境要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;li&gt;Java 17+&lt;/li&gt;
&lt;li&gt;Node.js 16+&lt;/li&gt;
&lt;li&gt;MySQL 8.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="1-数据库设置"&gt;1. 数据库设置&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建数据库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mysql -u root -p
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CREATE DATABASE yolo_detection_system&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入数据库结构&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mysql -u root -p yolo_detection_system &amp;lt; database/schema.sql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-ai检测服务"&gt;2. AI检测服务&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ai-service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-后端服务"&gt;3. 后端服务&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; backend-service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 修改数据库配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 编辑 src/main/resources/application.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 构建和运行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mvn spring-boot:run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-前端界面"&gt;4. 前端界面&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动开发服务器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="服务端口"&gt;服务端口&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;前端&lt;/strong&gt;: http://localhost:3000&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后端API&lt;/strong&gt;: http://localhost:8080&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI服务&lt;/strong&gt;: http://localhost:5000&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Swagger文档&lt;/strong&gt;: http://localhost:8080/swagger-ui.html&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用说明"&gt;使用说明&lt;/h2&gt;
&lt;h3 id="1-系统登录"&gt;1. 系统登录&lt;/h3&gt;
&lt;p&gt;或注册新用户账号&lt;/p&gt;
&lt;h3 id="2-图片检测"&gt;2. 图片检测&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入&amp;quot;图片检测&amp;quot;页面&lt;/li&gt;
&lt;li&gt;拖拽或点击上传图片&lt;/li&gt;
&lt;li&gt;调整检测参数&lt;/li&gt;
&lt;li&gt;查看检测结果&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="3-视频检测"&gt;3. 视频检测&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入&amp;quot;视频检测&amp;quot;页面&lt;/li&gt;
&lt;li&gt;上传视频文件&lt;/li&gt;
&lt;li&gt;等待处理完成&lt;/li&gt;
&lt;li&gt;下载结果视频&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="4-实时检测"&gt;4. 实时检测&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入&amp;quot;摄像头检测&amp;quot;页面&lt;/li&gt;
&lt;li&gt;允许摄像头权限&lt;/li&gt;
&lt;li&gt;开始实时检测&lt;/li&gt;
&lt;li&gt;查看检测框和结果&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="5-模型管理"&gt;5. 模型管理&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入&amp;quot;模型管理&amp;quot;页面&lt;/li&gt;
&lt;li&gt;查看当前所有可用模型&lt;/li&gt;
&lt;li&gt;上传新模型:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;切换模型&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;点击模型卡片上的&amp;quot;激活&amp;quot;按钮&lt;/li&gt;
&lt;li&gt;系统会加载新模型用于后续检测&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;管理模型:&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="6-模型训练"&gt;6. 模型训练&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入&amp;quot;模型训练&amp;quot;页面&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;准备数据集&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;确保数据集在&lt;code&gt;ai-service/datasets/&lt;/code&gt;目录下&lt;/li&gt;
&lt;li&gt;数据集应包含&lt;code&gt;data.yaml&lt;/code&gt;配置文件&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置训练参数&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;选择基础模型（yolov8n.pt、yolov8s.pt等）&lt;/li&gt;
&lt;li&gt;配置图像尺寸（320/416/512/640/832）&lt;/li&gt;
&lt;li&gt;调整批量大小和学习率&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开始训练&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;点击&amp;quot;开始训练&amp;quot;按钮&lt;/li&gt;
&lt;li&gt;实时查看训练进度和指标&lt;/li&gt;
&lt;li&gt;监控损失值、精度、召回率等&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练完成&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;最佳模型自动保存到&lt;code&gt;runs/train/&lt;/code&gt;目录&lt;/li&gt;
&lt;li&gt;可将训练好的模型移动到&lt;code&gt;models/&lt;/code&gt;目录使用&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="api文档"&gt;API文档&lt;/h2&gt;
&lt;p&gt;访问 http://localhost:8080/swagger-ui.html 查看完整的API文档。&lt;/p&gt;
&lt;h3 id="主要接口"&gt;主要接口&lt;/h3&gt;
&lt;h4 id="认证接口"&gt;认证接口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/auth/login&lt;/code&gt; - 用户登录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/auth/register&lt;/code&gt; - 用户注册&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/auth/refresh&lt;/code&gt; - 刷新令牌&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="检测接口"&gt;检测接口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/detect/image&lt;/code&gt; - 图片检测&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/detect/video&lt;/code&gt; - 视频检测&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/tasks/{taskId}/status&lt;/code&gt; - 查询任务状态&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="模型管理接口"&gt;模型管理接口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/models/management&lt;/code&gt; - 获取模型管理列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/models/upload&lt;/code&gt; - 上传模型文件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PUT /api/models/{id}/rename&lt;/code&gt; - 重命名模型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DELETE /api/models/{id}/delete&lt;/code&gt; - 删除模型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/models/{id}/activate&lt;/code&gt; - 激活模型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/models/{id}/info&lt;/code&gt; - 获取模型详细信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/models&lt;/code&gt; - 获取可用模型列表&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="模型训练接口"&gt;模型训练接口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/training/start&lt;/code&gt; - 开始训练&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/training/status&lt;/code&gt; - 获取训练状态&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/training/stop&lt;/code&gt; - 停止训练&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/training/models&lt;/code&gt; - 获取可用预训练模型&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="用户管理"&gt;用户管理&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/users&lt;/code&gt; - 获取用户列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PUT /api/users/{id}&lt;/code&gt; - 更新用户信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DELETE /api/users/{id}&lt;/code&gt; - 删除用户&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="部署说明"&gt;部署说明&lt;/h2&gt;
&lt;h3 id="生产环境配置"&gt;生产环境配置&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据库优化&lt;/strong&gt;: 调整MySQL配置参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redis集群&lt;/strong&gt;: 使用Redis Cluster提高可用性&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;负载均衡&lt;/strong&gt;: 使用Nginx进行负载均衡&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSL证书&lt;/strong&gt;: 配置HTTPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控告警&lt;/strong&gt;: 集成Prometheus + Grafana&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="开发指南"&gt;开发指南&lt;/h2&gt;
&lt;h3 id="项目结构"&gt;项目结构&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;yolo&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;detection&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;ai&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# AI检测服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt; &lt;span class="c1"&gt;# Flask应用主文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;requirements&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;txt&lt;/span&gt; &lt;span class="c1"&gt;# Python依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# YOLO模型存储 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;datasets&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 训练数据集存储 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;runs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 训练结果存储 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;uploads&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 上传文件存储&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# Spring Boot后端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# Java源码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;pom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xml&lt;/span&gt; &lt;span class="c1"&gt;# Maven配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;yml&lt;/span&gt; &lt;span class="c1"&gt;# 应用配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;frontend&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# Vue3前端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 源码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# API接口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;management&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="c1"&gt;# 模型管理API &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;training&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="c1"&gt;# 训练API&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;views&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 页面组件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 模型管理页面 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;training&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 训练页面 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;router&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 路由配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="c1"&gt;# npm配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;vite&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="c1"&gt;# Vite配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="c1"&gt;# 数据库脚本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;│&lt;/span&gt; &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt; &lt;span class="c1"&gt;# 数据库结构&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="代码规范"&gt;代码规范&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt;: 遵循PEP 8规范&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt;: 使用Google Java Style&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;: 使用ESLint + Prettier&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt;: 使用约定式提交规范&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="测试"&gt;测试&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 后端测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; backend-service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mvn &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 前端测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# AI服务测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ai-service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pytest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="常见问题"&gt;常见问题&lt;/h2&gt;
&lt;h3 id="q-模型下载慢怎么办"&gt;Q: 模型下载慢怎么办？&lt;/h3&gt;
&lt;p&gt;A: 可以手动下载YOLO模型文件到 &lt;code&gt;ai-service/models/&lt;/code&gt; 目录。&lt;/p&gt;
&lt;h3 id="q-摄像头检测连接失败"&gt;Q: 摄像头检测连接失败？&lt;/h3&gt;
&lt;p&gt;A: 检查浏览器权限和摄像头设备状态。&lt;/p&gt;
&lt;h3 id="q-文件上传失败"&gt;Q: 文件上传失败？&lt;/h3&gt;
&lt;p&gt;A: 检查文件大小限制和服务器磁盘空间。&lt;/p&gt;
&lt;h3 id="q-数据库连接失败"&gt;Q: 数据库连接失败？&lt;/h3&gt;
&lt;p&gt;A: 检查MySQL服务状态和连接配置。&lt;/p&gt;
&lt;h3 id="q-历史记录中不存在视频和图片"&gt;Q: 历史记录中不存在视频和图片&lt;/h3&gt;
&lt;p&gt;A: 查看后端spring启动路径&lt;/p&gt;
&lt;p&gt;修改backend-service/src/main/resources/application.yml&lt;/p&gt;
&lt;p&gt;upload-path:
results-path:&lt;/p&gt;
&lt;h2 id="更新日志"&gt;更新日志&lt;/h2&gt;
&lt;h3 id="v100-2025-06-27"&gt;v1.0.0 (2025-06-27)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;初始版本发布&lt;/li&gt;
&lt;li&gt;支持图片、视频、实时检测&lt;/li&gt;
&lt;li&gt;用户权限管理&lt;/li&gt;
&lt;li&gt;基础数据可视化&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="v201-2025-08-01"&gt;v2.0.1 (2025-08-01)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;优化数据可视化&lt;/li&gt;
&lt;li&gt;优化界面ui&lt;/li&gt;
&lt;li&gt;修复检测记录bug&lt;/li&gt;
&lt;li&gt;增加统计指标&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="v310-2025-08-10"&gt;v3.1.0 (2025-08-10)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🆕 &lt;strong&gt;模型管理功能&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;🆕 &lt;strong&gt;模型训练功能&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;🔧 &lt;strong&gt;系统优化&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="联系方式"&gt;联系方式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;邮箱:
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="致谢"&gt;致谢&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="检测记录功能完成状态"&gt;检测记录功能完成状态&lt;/h2&gt;
&lt;h3 id="-已完成功能"&gt;✅ 已完成功能&lt;/h3&gt;
&lt;h4 id="1-数据库设计"&gt;1. 数据库设计&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ detection_tasks表：包含user_id字段，支持用户数据隔离&lt;/li&gt;
&lt;li&gt;✅ detection_results表：通过task_id关联，间接支持用户隔离&lt;/li&gt;
&lt;li&gt;✅ 索引优化：添加user_id、task_id、status等关键字段索引&lt;/li&gt;
&lt;li&gt;✅ 外键约束：确保数据一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-后端api实现"&gt;2. 后端API实现&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ DetectionRecordController：用户检测记录CRUD操作
&lt;ul&gt;
&lt;li&gt;获取检测记录列表（分页、排序、筛选）&lt;/li&gt;
&lt;li&gt;获取检测记录详情&lt;/li&gt;
&lt;li&gt;获取检测结果列表&lt;/li&gt;
&lt;li&gt;获取统计信息&lt;/li&gt;
&lt;li&gt;删除检测记录&lt;/li&gt;
&lt;li&gt;批量删除检测记录&lt;/li&gt;
&lt;li&gt;获取用户概览统计&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;✅ InternalDetectionController：供AI服务使用的内部API
&lt;ul&gt;
&lt;li&gt;创建检测任务&lt;/li&gt;
&lt;li&gt;更新任务状态&lt;/li&gt;
&lt;li&gt;保存检测结果&lt;/li&gt;
&lt;li&gt;获取任务信息&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;✅ 权限控制：所有用户API基于@AuthenticationPrincipal验证&lt;/li&gt;
&lt;li&gt;✅ 数据隔离：确保用户只能访问自己的检测记录&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-前端界面实现"&gt;3. 前端界面实现&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ 检测记录列表页面（/history）
&lt;ul&gt;
&lt;li&gt;用户概览统计卡片&lt;/li&gt;
&lt;li&gt;搜索和筛选功能&lt;/li&gt;
&lt;li&gt;表格和卡片两种视图模式&lt;/li&gt;
&lt;li&gt;分页功能&lt;/li&gt;
&lt;li&gt;批量选择和删除&lt;/li&gt;
&lt;li&gt;操作按钮（查看详情、下载、删除）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;✅ 检测记录详情页面（/history/detail/:taskId）
&lt;ul&gt;
&lt;li&gt;基本信息展示&lt;/li&gt;
&lt;li&gt;文件预览功能&lt;/li&gt;
&lt;li&gt;统计图表（类别分布、置信度分布）&lt;/li&gt;
&lt;li&gt;检测结果列表（分页、筛选）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;✅ 路由配置：支持详情页面访问&lt;/li&gt;
&lt;li&gt;✅ 权限验证：自动登录测试用户功能&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-ai服务集成"&gt;4. AI服务集成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ 后端API客户端：与后端服务通信&lt;/li&gt;
&lt;li&gt;✅ 检测任务创建：自动创建数据库记录&lt;/li&gt;
&lt;li&gt;✅ 状态更新：实时更新任务处理状态&lt;/li&gt;
&lt;li&gt;✅ 结果保存：检测完成后保存结果到数据库&lt;/li&gt;
&lt;li&gt;✅ 图片检测集成：完整的检测流程&lt;/li&gt;
&lt;li&gt;✅ 错误处理：异常情况的状态更新&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5-文件管理"&gt;5. 文件管理&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ FileController：文件下载和预览API&lt;/li&gt;
&lt;li&gt;✅ 文件上传：支持图片和视频文件&lt;/li&gt;
&lt;li&gt;✅ 结果文件：处理后的文件存储和访问&lt;/li&gt;
&lt;li&gt;✅ 缩略图：任务缩略图生成和显示&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="6-安全配置"&gt;6. 安全配置&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;✅ 内部API：不需要认证，供AI服务使用&lt;/li&gt;
&lt;li&gt;✅ 用户API：需要JWT认证&lt;/li&gt;
&lt;li&gt;✅ CORS配置：支持跨域访问&lt;/li&gt;
&lt;li&gt;✅ 权限隔离：用户数据完全隔离&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-技术特性"&gt;🔧 技术特性&lt;/h3&gt;
&lt;h4 id="用户权限隔离"&gt;用户权限隔离&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;每个用户只能查看自己的检测记录&lt;/li&gt;
&lt;li&gt;所有查询均基于当前登录用户&lt;/li&gt;
&lt;li&gt;数据库级别的权限控制&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="性能优化"&gt;性能优化&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;分页查询：避免大数据量加载&lt;/li&gt;
&lt;li&gt;索引优化：提高查询效率&lt;/li&gt;
&lt;li&gt;懒加载：图片和文件按需加载&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="用户体验"&gt;用户体验&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;响应式设计：支持多种屏幕尺寸&lt;/li&gt;
&lt;li&gt;实时反馈：操作状态提示&lt;/li&gt;
&lt;li&gt;快速搜索：关键词和条件筛选&lt;/li&gt;
&lt;li&gt;批量操作：提高管理效率&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-支持的检测类型"&gt;📊 支持的检测类型&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;✅ 图片检测：单张图片处理&lt;/li&gt;
&lt;li&gt;✅ 视频检测：视频文件处理&lt;/li&gt;
&lt;li&gt;✅ 实时检测：摄像头检测&lt;/li&gt;
&lt;li&gt;✅ 模型管理：自定义模型上传和管理 (新增)&lt;/li&gt;
&lt;li&gt;✅ 模型训练：自定义数据集训练 (新增)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-新功能详细说明"&gt;🚀 新功能详细说明&lt;/h2&gt;
&lt;h3 id="-模型管理系统"&gt;🤖 模型管理系统&lt;/h3&gt;
&lt;h4 id="功能特性-1"&gt;功能特性&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;智能模型识别&lt;/strong&gt;: 自动识别YOLO模型格式和架构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可视化管理&lt;/strong&gt;: 美观的卡片式界面展示所有模型&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型信息&lt;/strong&gt;: 显示模型大小、类别数量、修改时间等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一键切换&lt;/strong&gt;: 快速切换不同模型进行检测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全管理&lt;/strong&gt;: 防止删除正在使用的模型&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="支持的模型格式"&gt;支持的模型格式&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;YOLOv8 系列: yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt&lt;/li&gt;
&lt;li&gt;YOLOv11 系列: yolov11n.pt 及其他变体&lt;/li&gt;
&lt;li&gt;自定义训练模型: 支持用户训练的所有YOLO格式模型&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="使用流程"&gt;使用流程&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;📁 将模型文件上传到系统&lt;/li&gt;
&lt;li&gt;✅ 系统自动验证模型有效性&lt;/li&gt;
&lt;li&gt;📋 查看模型详细信息和架构&lt;/li&gt;
&lt;li&gt;🔄 一键激活模型用于检测&lt;/li&gt;
&lt;li&gt;🗑️ 管理不需要的模型文件&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-模型训练系统"&gt;🎓 模型训练系统&lt;/h3&gt;
&lt;h4 id="训练能力"&gt;训练能力&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多GPU支持&lt;/strong&gt;: 自动检测和使用可用GPU&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;断点续训&lt;/strong&gt;: 支持从检查点恢复训练&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时监控&lt;/strong&gt;: WebSocket实时推送训练状态&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动调优&lt;/strong&gt;: 智能调整训练参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结果保存&lt;/strong&gt;: 自动保存最佳模型权重&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="训练参数配置"&gt;训练参数配置&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;训练参数&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;数据集路径&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;datasets/your_dataset/&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实时监控指标"&gt;实时监控指标&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;📈 &lt;strong&gt;损失函数&lt;/strong&gt;: 训练损失和验证损失&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;精度指标&lt;/strong&gt;: Precision, Recall, F1-Score&lt;/li&gt;
&lt;li&gt;🏆 &lt;strong&gt;mAP指标&lt;/strong&gt;: mAP@50, mAP@50-95&lt;/li&gt;
&lt;li&gt;⏱️ &lt;strong&gt;进度信息&lt;/strong&gt;: 当前轮次、剩余时间、ETA&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;资源使用&lt;/strong&gt;: GPU使用率、内存占用&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="数据集格式要求"&gt;数据集格式要求&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;datasets/your_dataset/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── data.yaml # 数据集配置文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── images/ # 图像文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── train/ # 训练图像
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── val/ # 验证图像
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── labels/ # 标注文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── train/ # 训练标注 (.txt格式)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── val/ # 验证标注 (.txt格式)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="训练输出"&gt;训练输出&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;🏆 &lt;strong&gt;最佳模型&lt;/strong&gt;: &lt;code&gt;runs/train/exp_xxx/weights/best.pt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;训练曲线&lt;/strong&gt;: 损失和指标变化图表&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;训练日志&lt;/strong&gt;: 完整的训练过程记录&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;验证结果&lt;/strong&gt;: 验证集上的检测结果示例&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-用户功能"&gt;🎯 用户功能&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;查看检测记录&lt;/strong&gt;：分页浏览所有检测任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;筛选搜索&lt;/strong&gt;：按类型、状态、时间、关键词筛选&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;查看详情&lt;/strong&gt;：详细信息、文件预览、统计图表&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;管理记录&lt;/strong&gt;：删除单个或批量删除记录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统计分析&lt;/strong&gt;：个人检测数据统计和可视化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载结果&lt;/strong&gt;：下载处理后的文件&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-部署说明"&gt;🚀 部署说明&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;前端：Vue3 + TypeScript + Element Plus&lt;/li&gt;
&lt;li&gt;后端：Spring Boot + JPA + MySQL&lt;/li&gt;
&lt;li&gt;AI服务：Flask + YOLOv8&lt;/li&gt;
&lt;li&gt;数据库：MySQL 8.0+&lt;/li&gt;
&lt;li&gt;认证：JWT Token&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="测试指南"&gt;测试指南&lt;/h2&gt;
&lt;h3 id="启动服务"&gt;启动服务&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动后端服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; backend-service &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; mvn spring-boot:run
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动AI服务 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ai-service &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python app.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动前端服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; frontend &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="访问地址"&gt;访问地址&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;前端界面：http://localhost:3000&lt;/li&gt;
&lt;li&gt;后端API文档：http://localhost:8080/swagger-ui.html&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;检测记录功能已完全实现，支持完整的用户隔离和记录管理功能！&lt;/p&gt;</description></item></channel></rss>