# tensorRT端侧部署_中控 **Repository Path**: altria1122/tensor-rt-center-deployment ## Basic Information - **Project Name**: tensorRT端侧部署_中控 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TensorRT 边缘设备中心部署系统 基于 TensorRT 的边缘设备中心化管理与部署系统,支持设备管理、图像标注、视频流推理、模型训练与部署等功能。 ## 功能特性 ### 设备管理 - 边缘设备的添加、修改、删除操作 - 设备状态实时监控(在线/离线/错误) - 摄像头管理(RTSP 流配置) - 设备连接测试 - 心跳检测机制 ### 视频流与推理 - 实时视频流监控 - TensorRT 模型推理切换控制 - 视频流快照获取(支持推理结果叠加) - 多路视频流并行处理 ### 标注系统 - 图片上传与管理 - 目标检测标注(边界框) - 标签管理 - COCO 数据集格式导出 - 标注统计与分析 - 批量图片导入 ### 模型训练与部署 - 训练数据上传 - 自定义训练参数配置(epochs, batch size) - 训练状态实时监控 - 模型部署与管理 - 危险标签配置 ### 告警系统 - 实时告警通知(WebSocket) - 告警记录存储与查询 - 告警级别分类 ### 通信机制 - WebSocket 实时通信 - 前端与后端双向通信 - 边缘设备心跳检测 - 告警消息推送 ## 技术栈 ### 后端 - **FastAPI**: 高性能异步 Web 框架 - **Pydantic**: 数据验证与模型定义 - **WebSocket**: 实时通信 - **Python 3.8+**: 开发语言 ### 前端 - **React**: 用户界面框架 - **TypeScript**: 类型安全 - **Vite**: 构建工具 - **Tailwind CSS**: 样式框架 - **Electron**: 桌面应用打包 ## 项目结构 ``` tensor-rt-center-deployment/ ├── backend/ │ ├── app/ │ │ ├── api/ # API 路由 │ │ │ ├── annotations.py # 标注相关接口 │ │ │ ├── devices.py # 设备管理接口 │ │ │ ├── streams.py # 视频流接口 │ │ │ └── training.py # 训练相关接口 │ │ ├── models/ # 数据模型 │ │ │ ├── alarm.py # 告警模型 │ │ │ ├── annotation.py # 标注模型 │ │ │ └── device.py # 设备模型 │ │ ├── services/ # 业务逻辑 │ │ │ ├── annotation_service.py │ │ │ ├── device_manager.py │ │ │ └── edge_client.py │ │ ├── websocket/ # WebSocket 处理 │ │ │ └── handler.py │ │ ├── config.py # 配置文件 │ │ ├── dependencies.py # 依赖注入 │ │ ├── main.py # 应用入口 │ │ └── utils/ # 工具函数 │ │ └── logger.py │ └── run.py # 启动脚本 ├── frontend/ │ ├── src/ │ │ ├── components/ # 公共组件 │ │ ├── pages/ # 页面组件 │ │ │ ├── AnnotationPage.tsx │ │ │ ├── DeviceManagement.tsx │ │ │ ├── InferenceView.tsx │ │ │ └── VideoMonitor.tsx │ │ ├── services/ # API 服务 │ │ ├── store/ # 状态管理 │ │ ├── hooks/ # 自定义 Hooks │ │ ├── types/ # TypeScript 类型 │ │ ├── App.tsx │ │ └── index.tsx │ ├── electron/ # Electron 配置 │ ├── index.html │ ├── package.json │ ├── tailwind.config.js │ ├── tsconfig.json │ └── vite.config.ts └── README.md ``` ## API 接口文档 ### 设备管理 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/devices/` | 获取所有设备列表 | | GET | `/api/devices/{device_id}` | 获取指定设备信息 | | POST | `/api/devices/` | 添加新设备 | | PUT | `/api/devices/{device_id}` | 更新设备信息 | | DELETE | `/api/devices/{device_id}` | 删除设备 | | POST | `/api/devices/{device_id}/cameras` | 添加摄像头 | | DELETE | `/api/devices/{device_id}/cameras/{camera_id}` | 删除摄像头 | | POST | `/api/devices/{device_id}/test-connection` | 测试设备连接 | | POST | `/api/devices/{device_id}/upload-model` | 上传模型到设备 | | POST | `/api/devices/{device_id}/labels` | 更新设备标签 | | POST | `/api/devices/{device_id}/dangerous-labels` | 更新危险标签 | ### 标注管理 | 方法 | 路径 | 描述 | |------|------|------| | POST | `/api/annotations/{device_id}/screenshot` | 上传截图 | | POST | `/api/annotations/{device_id}/screenshot/base64` | 上传 Base64 截图 | | GET | `/api/annotations/{device_id}/images` | 获取设备图片列表 | | GET | `/api/annotations/{device_id}/labels` | 获取设备标签 | | POST | `/api/annotations/{device_id}/labels` | 添加标签 | | POST | `/api/annotations/{device_id}/images/{image_name}/annotations` | 保存图片标注 | | GET | `/api/annotations/{device_id}/images/{image_name}/annotations` | 获取图片标注 | | GET | `/api/annotations/{device_id}/export/coco` | 导出 COCO 数据集 | | GET | `/api/annotations/{device_id}/statistics` | 获取标注统计 | | POST | `/api/annotations/{device_id}/import` | 批量导入图片 | ### 视频流管理 | 方法 | 路径 | 描述 | |------|------|------| | POST | `/api/streams/{device_id}/cameras/{camera_id}/inference` | 切换推理开关 | | POST | `/api/streams/{device_id}/inference/all` | 切换所有推理 | | GET | `/api/streams/{device_id}/cameras/{camera_id}/info` | 获取流信息 | | GET | `/api/streams/{device_id}/cameras/{camera_id}/snapshot` | 获取快照 | ### 训练管理 | 方法 | 路径 | 描述 | |------|------|------| | POST | `/api/training/{device_id}/send-data` | 发送训练数据 | | POST | `/api/training/{device_id}/start-training` | 开始训练 | | GET | `/api/training/{device_id}/training-status` | 获取训练状态 | | POST | `/api/training/{device_id}/deploy-model` | 部署模型 | | GET | `/api/training/{device_id}/data-status` | 获取数据状态 | ### WebSocket 接口 | 路径 | 描述 | |------|------| | `/ws/{client_id}` | 前端客户端连接 | | `/ws/edge/{device_id}` | 边缘设备连接 | ## 安装部署 ### 环境要求 - Python 3.8+ - Node.js 16+ - npm 或 yarn ### 后端部署 1. 创建虚拟环境: ```bash cd backend python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 配置环境变量: ```bash # 复制环境变量模板并修改 cp .env.example .env ``` 4. 启动服务: ```bash python run.py ``` ### 前端部署 1. 安装依赖: ```bash cd frontend npm install ``` 2. 开发模式运行: ```bash npm start ``` 3. 构建生产版本: ```bash npm run build ``` ## 使用说明 ### 添加边缘设备 1. 在设备管理页面点击「添加设备」 2. 填写设备信息: - 设备 ID:唯一标识符 - 设备名称:显示名称 - 设备地址:边缘设备服务地址 - 认证令牌:设备连接验证 3. 点击「测试连接」验证连通性 4. 保存设备信息 ### 配置摄像头 1. 选择已添加的设备 2. 在设备详情页点击「添加摄像头」 3. 填写摄像头信息: - 摄像头 ID:唯一标识符 - RTSP 地址:视频流地址 - 摄像头名称:显示名称 4. 保存配置 ### 开始推理 1. 进入视频监控页面 2. 选择设备及摄像头 3. 点击推理开关启动/停止推理 4. 查看实时推理结果 ### 图像标注 1. 进入标注管理页面 2. 选择设备 3. 上传图片或截图 4. 添加标注边界框 5. 选择分类标签 6. 保存标注信息 ### 模型训练 1. 准备训练数据(已标注图片) 2. 进入训练管理页面 3. 选择设备 4. 上传训练数据 5. 配置训练参数: - Epochs:训练轮数 - Batch Size:批次大小 6. 开始训练 7. 监控训练进度 8. 训练完成后部署模型 ## 贡献指南 1. Fork 本项目 2. 创建功能分支:`git checkout -b feature/xxx` 3. 提交更改:`git commit -m 'Add feature xxx'` 4. 推送分支:`git push origin feature/xxx` 5. 提交 Pull Request ## 许可证 本项目采用 [MIT License](LICENSE) 开源许可证。 ## 联系方式 - 项目地址:https://gitee.com/altria1122/tensor-rt-center-deployment - 问题反馈:https://gitee.com/altria1122/tensor-rt-center-deployment/issues