版本:V1.1 编制日期:2026-05-27 编制人:[姓名已隐藏] 状态:待评审 变更记录:V1.1 修正无人机离线视频识别数据流向(离线识别在内网GPU运行,成果已在内网,无需同步)
一、需求概述
1.1 背景
当前市项目甲体系中,AI识别成果分布在两个独立环境:
| 环境 | 部署位置 | 硬件 | 数据来源 | 现状问题 |
|---|---|---|---|---|
| 内网 | 市政务内网 | GPU服务器 | 高点视频AI识别 + 无人机离线视频AI识别 | 已有线索管理模块,仅展示高点视频识别成果,无人机离线识别成果未展示 |
| 外网 | 某采集平台无人机管理平台 | NPU(边缘计算) | 无人机直播实时AI识别 | 识别成果存储在外网,内网无法查看 |
关键数据流向说明:无人机识别分两种场景——离线视频识别(录制后上传至内网GPU处理)成果本身已在内网,无需同步;直播实时识别(外网NPU边缘计算)成果在外网,需同步至内网。
1.2 核心痛点
- 数据孤岛:无人机直播AI识别成果(外网NPU)与高点视频/无人机离线识别成果(内网GPU)分别存储,无法统一查看
- 线索分散:内网线索管理目前仅展示高点视频(摄像头)和无人机离线视频来源的线索,无人机来源线索(直播)均缺失
- 模型管理分离:内网GPU模型与外网NPU模型分别管理,无统一入口
1.3 需求目标
| 目标编号 | 目标描述 | 优先级 |
|---|---|---|
| G1 | 实现无人机直播AI识别成果(外网NPU)向内网同步存储与展示 | P0 |
| G2 | 实现内外网AI模型统一入口管理与展示 | P0 |
| G3 | 实现线索管理模块整合内外网所有来源线索(不区分离线/在线) | P0 |
二、需求范围
2.1 包含范围
- 无人机直播(实时在线)视频AI识别成果由外网同步至内网
- 无人机离线视频AI识别成果在内网展示(数据已在内网,仅需线索管理模块接入展示)
- 模型中心内外网模型合并展示
- 线索管理模块整合展示(高点视频+无人机离线+无人机直播,内网+外网)
2.2 不包含范围
- 外网NPU模型训练与迭代(仍在外网进行)
- 高点视频AI识别逻辑变更(保持现有逻辑)
- 无人机飞行控制与视频采集(仍由某采集平台负责)
三、功能需求
3.1 模型中心改造(需求1)
3.1.1 现状
当前模型中心展示内网GPU部署的模型,包括:
- 裸土识别模型
- 自然资源综合模型V1.0
- 无人机模型(内网GPU版本)
截图参考:模型中心列表页(图1)、模型详情页(图2)
3.1.2 改造内容
| 需求编号 | 需求描述 | 详细说明 |
|---|---|---|
| M1 | 模型数据源扩展 | 模型中心需同时展示内网GPU模型与外网NPU模型 |
| M2 | 统一入口查看 | 用户从单一入口进入模型中心,可查看全部模型(内外网) |
| M3 | 模型来源标识 | 在模型卡片及详情页明确标识模型部署环境:「内网/GPU」或「外网/NPU」 |
| M4 | 模型统计合并 | 识别总次数、本周识别、今日新增、日均识别等统计数据需合并计算内外网数据 |
| M5 | 数据库字段扩展 | 模型表新增字段:deploy_env(部署环境:internal/external)、hardware_type(硬件类型:GPU/NPU) |
3.1.3 界面改造点
模型列表页(图1)
| 改造项 | 改造前 | 改造后 |
|---|---|---|
| 模型卡片 | 仅展示内网模型 | 展示全部模型,卡片右上角增加环境标签(内网/外网) |
| 筛选条件 | 关键字搜索、状态筛选 | 增加「部署环境」筛选(全部/内网/外网) |
| 模型数量统计 | "共3个模型" | "共X个模型(内网3个/外网Y个)" |
模型详情页(图2)
| 改造项 | 改造前 | 改造后 |
|---|---|---|
| 模型信息区 | 模型类型、业务类型、新增时间等 | 增加「部署环境」「硬件类型」字段 |
| 调用统计 | 仅统计内网调用次数 | 合并统计内外网调用次数,图表支持按环境拆分查看 |
| 版本管理 | 仅管理内网版本 | 支持查看外网模型版本(只读,版本管理仍在外网进行) |
3.1.4 数据库变更
模型表(ai_model)字段扩展
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
deploy_env | VARCHAR(20) | 是 | 'internal' | 部署环境:internal(内网)/ external(外网) |
hardware_type | VARCHAR(20) | 是 | 'GPU' | 硬件类型:GPU / NPU |
sync_status | VARCHAR(20) | 否 | NULL | 同步状态:synced(已同步)/ syncing(同步中)/ failed(失败) |
last_sync_time | DATETIME | 否 | NULL | 最后一次同步时间 |
external_model_id | VARCHAR(64) | 否 | NULL | 外网平台模型唯一标识(外网模型必填) |
3.2 线索管理改造(需求2)
3.2.1 现状
当前线索管理模块展示内网高点视频(摄像头)识别产生的线索,线索来源包括:
- 群众上报
- 摄像头(高点视频AI识别)
- 无人机离线视频识别成果(内网GPU,已有数据但未在线索管理中展示)
- 无人机直播实时识别成果(外网NPU,数据不在内网,无法展示)
截图参考:线索管理列表页(图3)
3.2.2 改造内容
| 需求编号 | 需求描述 | 详细说明 |
|---|---|---|
| C1 | 线索来源扩展 | 线索管理需整合展示内网高点视频、内网无人机离线识别、外网无人机直播识别三类来源的线索 |
| C2 | 不区分在线/离线 | 无人机线索不区分「直播实时识别」与「离线视频识别」,统一作为「无人机」来源展示 |
| C3 | 直播线索同步机制 | 外网无人机直播识别成果实时/定时同步至内网线索库(离线识别成果已在内网,无需同步) |
| C4 | 统一操作 | 所有线索支持统一操作:确认线索、点转面、详情查看 |
| C5 | 地图展示 | 右侧地图同步展示无人机线索点位(与高点视频线索统一图层管理) |
3.2.3 界面改造点
线索列表页(图3)
| 改造项 | 改造前 | 改造后 |
|---|---|---|
| 线索来源列 | 群众、摄像头、无人机 | 群众、摄像头、无人机(内网)、无人机(外网)→ 统一显示为「无人机」,hover或详情中展示具体环境 |
| 筛选条件 | 线索来源、线索状态、时间范围 | 增加「数据来源」筛选(全部/内网/外网) |
| 模型名称列 | 展示内网模型名称 | 内外网模型名称统一展示 |
| 识别类型列 | 人工识别、AI识别 | 保持不变 |
线索详情页
| 改造项 | 改造前 | 改造后 |
|---|---|---|
| 线索来源信息 | 仅展示摄像头信息 | 增加无人机信息:设备编号、飞行任务ID、识别时间、视频片段 |
| 影像展示 | 高点视频截图 | 支持高点视频截图/无人机航拍图/视频片段 |
| 地理位置 | 摄像头点位 | 无人机线索展示GPS坐标及飞行轨迹 |
3.2.4 数据库变更
线索表(clue)字段扩展
| 字段名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
data_source | VARCHAR(20) | 是 | 'internal' | 数据来源:internal(内网)/ external(外网) |
source_env | VARCHAR(20) | 是 | 'gpu' | 识别环境:gpu(内网GPU-高点视频/无人机离线)/ npu(外网NPU-无人机直播)/ camera(高点摄像头) |
device_type | VARCHAR(20) | 是 | 'camera' | 设备类型:camera(摄像头)/ drone(无人机) |
identify_mode | VARCHAR(20) | 否 | NULL | 识别模式:offline(离线视频识别-内网GPU)/ live(直播实时识别-外网NPU);前端不展示此区分,仅用于数据溯源 |
sync_id | VARCHAR(64) | 否 | NULL | 外网同步线索唯一标识(外网线索必填) |
video_url | VARCHAR(512) | 否 | NULL | 视频片段地址(无人机线索必填) |
flight_task_id | VARCHAR(64) | 否 | NULL | 飞行任务ID(无人机线索必填) |
drone_sn | VARCHAR(64) | 否 | NULL | 无人机设备序列号(无人机线索必填) |
四、数据同步方案
4.1 同步架构
┌─────────────────────────────────────────────────────────────┐
│ 外网环境 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 某采集平台无人机平台 │───→│ NPU识别 │───→│ 直播识别成果 │ │
│ │ (无人机直播) │ │ 边缘计算 │ │ 库 │ │
│ └──────────────┘ └──────────────┘ └──────┬───────┘ │
│ │ │
│ 仅同步直播识别成果 │ │
│ 【数据同步服务】 │
│ │ │
└──────────────────────────────────────────────────┼──────────┘
│
↓ 安全隔离网闸/单向导入
┌──────────────────────────────────────────────────┼──────────┐
│ │ │
│ ┌───────────────────────────────────────────────▼───────┐ │
│ │ 内网环境 │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 线索管理 │←───│ 线索数据库 │ │ │
│ │ │ 模块 │ │ (含三类线索) │ │ │
│ │ └──────────────┘ └──────┬───────┘ │ │
│ │ ↑ │ │
│ │ ┌──────────────┐ ┌──────┴───────┐ │ │
│ │ │ 模型中心 │←───│ 模型数据库 │ │ │
│ │ │ 模块 │ │ (新增字段) │ │ │
│ │ └──────────────┘ └──────────────┘ │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 高点视频AI │ │ 无人机离线 │ │ │
│ │ │ GPU识别 │ │ GPU识别 │ ←── 成果已在内网│ │
│ │ └──────────────┘ └──────────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ 线索数据库包含三类线索: │
│ ① 高点视频识别线索(内网GPU,已有) │
│ ② 无人机离线识别线索(内网GPU,需接入展示) │
│ ③ 无人机直播识别线索(外网NPU,需同步+展示) │
└─────────────────────────────────────────────────────────────┘
4.2 同步内容
| 同步数据类型 | 同步频率 | 同步方式 | 数据量预估 | 说明 |
|---|---|---|---|---|
| 模型元数据 | 每小时 | 增量同步 | 小(模型数量<50) | 外网NPU模型信息 |
| 直播识别线索 | 实时/准实时 | 增量同步(触发式) | 中等(日均<1000条) | 仅无人机直播识别产生的线索 |
| 识别截图 | 准实时 | 文件同步 | 较大(每张2-5MB) | 直播识别截图 |
| 视频片段 | 按需 | 手动触发/定时 | 大(每段10-50MB) | 直播视频片段 |
注意:无人机离线视频识别在内网GPU上完成,成果已直接写入内网数据库,不经过同步流程。
4.3 同步接口要求
外网某采集平台需提供以下接口供内网调用(通过安全隔离设备),仅用于获取无人机直播识别产生的数据:
| 接口 | 方法 | 说明 |
|---|---|---|
/api/models | GET | 获取外网NPU模型列表(含版本信息) |
/api/live-clues | GET | 获取无人机直播识别线索(支持时间范围筛选) |
/api/live-clues/{id} | GET | 获取单条直播识别线索详情 |
/api/media/{id} | GET | 获取直播识别截图/视频片段 |
五、非功能需求
5.1 性能需求
| 指标 | 要求 | 说明 |
|---|---|---|
| 线索同步延迟 | ≤5分钟 | 外网识别完成到内网可查看 |
| 模型列表加载 | ≤2秒 | 合并内外网模型后列表加载时间 |
| 线索列表查询 | ≤3秒 | 支持分页,每页20条 |
| 地图点位渲染 | ≤5秒 | 1000个点位同时渲染 |
5.2 安全需求
| 需求 | 说明 |
|---|---|
| 数据隔离 | 外网数据同步至内网需通过安全隔离网闸,禁止内网直接访问外网 |
| 数据脱敏 | 同步过程中不涉及敏感个人信息,仅同步识别目标类型、位置、时间等 |
| 传输加密 | 同步数据需加密传输(HTTPS/TLS) |
| 访问控制 | 内网线索管理保持现有权限体系,不额外开放外网访问权限 |
5.3 兼容性需求
| 需求 | 说明 |
|---|---|
| 向后兼容 | 改造不影响现有高点视频识别线索的展示与操作 |
| 模型兼容 | 外网模型元数据格式需与内网模型表结构兼容 |
| 接口兼容 | 某采集平台接口变更需提前通知,保证同步服务稳定 |
六、界面原型说明
6.1 模型中心-列表页
基于图1改造:
┌─────────────────────────────────────────────────────────────┐
│ 市"项目甲"体系 · 模型中心 │
├─────────────────────────────────────────────────────────────┤
│ 业务场景 │
│ ├─ 全部场景 (5) ←── 内网3个 + 外网2个 │
│ ├─ 通用场景 (3) │
│ ├─ 建设工程管理场景 (1) │
│ ├─ 地质灾害 (0) │
│ └─ 耕地保护监管场景 (0) │
├─────────────────────────────────────────────────────────────┤
│ 全部场景 │
│ 关键字搜索 [________] 全部状态 [▼] 部署环境 [全部 ▼] 共5个模型 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ [施工中] │ │ [施工中] │ │ [施工中] │ │
│ │ 裸土 V1.0 │ │自然资源综合 │ │ 无人机 V1 │ │
│ │ │ │模型V1.0 │ │ │ │
│ │ [内网/GPU] │ │ [内网/GPU] │ │ [外网/NPU] │ ←── 新增标签│
│ │ 识别总次数:8 │ │ 识别总次数:0 │ │识别总次数:1186│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ 违建识别 │ │ 火点识别 │ │
│ │ V2.1 │ │ V1.5 │ │
│ │ [外网/NPU] │ │ [外网/NPU] │ ←── 外网模型 │
│ │ 识别总次数:523│ │ 识别总次数:89│ │
│ └─────────────┘ └─────────────┘ │
│ │
│ [+ 新增模型] │
└─────────────────────────────────────────────────────────────┘
6.2 线索管理-列表页
基于图3改造:
┌─────────────────────────────────────────────────────────────┐
│ 市"项目甲"体系 · 线索管理 │
├─────────────────────────────────────────────────────────────┤
│ 线索来源 [全部 ▼] 线索状态 [全部 ▼] 数据来源 [全部 ▼] ←── 新增 │
│ 开始日期 [________] 结束日期 [________] [查询] │
├─────────────────────────────────────────────────────────────┤
│ 序号 │ 线索来源 │ 线索时间 │ 模型名称 │ 线索类型 │ 识别类型 │ 操作 │
│------│---------│----------------│--------------│---------│---------│---------│
│ 6 │ 群众 │ 2026-05-18 ... │ - │ 面 │ 人工识别 │ 确认线索 │
│ 7 │ 群众 │ 2026-05-18 ... │ - │ 面 │ 人工识别 │ 确认线索 │
│ 9 │ 无人机 │ 2026-04-16 ... │ 无人机综合V1 │ 面 │ 人工识别 │ 确认线索 │ ←── 直播识别线索(外网NPU同步)
│ 10 │ 摄像头 │ 2026-04-16 ... │ - │ 面 │ 人工识别 │ 确认线索 │
│ 14 │ 无人机 │ 2026-04-08 ... │ - │ 面 │ 人工识别 │ 确认线索 │ ←── 离线识别线索(内网GPU)
│ ... │ ... │ ... │ ... │ ... │ ... │ ... │
├─────────────────────────────────────────────────────────────┤
│ < 1 2 3 4 5 6 ... 28 > 20条/页 跳至 [__] 页 │
└─────────────────────────────────────────────────────────────┘
说明:线索来源列统一显示「无人机」,不区分直播/离线识别;hover或详情页展示具体数据来源(内网/外网)。数据库中 identify_mode 字段保留识别模式标记,用于数据溯源,前端不展示此区分。
七、任务分解与排期
| 阶段 | 任务 | 负责人 | 工期 | 依赖 |
|---|---|---|---|---|
| 第一阶段 | 数据库字段扩展(模型表、线索表) | 后端开发 | 2天 | - |
| 第一阶段 | 外网同步接口对接(某采集平台) | 后端开发 | 3天 | 需某采集平台配合提供接口 |
| 第二阶段 | 模型中心UI改造(增加环境标签、筛选) | 前端开发 | 3天 | 数据库字段完成 |
| 第二阶段 | 模型中心统计合并逻辑 | 后端开发 | 2天 | 同步接口完成 |
| 第三阶段 | 线索管理UI改造(增加数据来源筛选) | 前端开发 | 2天 | 数据库字段完成 |
| 第三阶段 | 线索同步服务开发 | 后端开发 | 3天 | 同步接口完成 |
| 第四阶段 | 地图点位整合(无人机+摄像头) | 前端开发 | 2天 | 线索同步完成 |
| 第五阶段 | 联调测试 | 测试 | 3天 | 全部开发完成 |
| 合计 | ~20天 |
八、风险与依赖
| 风险编号 | 风险描述 | 影响 | 应对措施 |
|---|---|---|---|
| R1 | 某采集平台接口未就绪 | 高 | 提前与某采集平台团队确认接口排期,预留缓冲时间 |
| R2 | 内外网数据格式不一致 | 中 | 开发前进行数据格式对齐,制定字段映射规范 |
| R3 | 安全隔离网闸传输限制 | 中 | 确认网闸传输策略,大文件(视频)采用手动/定时同步 |
| R4 | 外网模型元数据缺失 | 低 | 与某采集平台确认模型信息字段,缺失字段置空处理 |
九、待确认问题
| 编号 | 问题 | 提出人 | 状态 |
|---|---|---|---|
| Q1 | 外网某采集平台是否已有模型元数据查询接口? | [姓名已隐藏] | 待确认(需对接某采集平台团队) |
| Q2 | 安全隔离网闸的传输频率和文件大小限制? | [姓名已隐藏] | 待确认(需对接运维团队) |
| Q3 | 无人机视频片段是否需同步至内网,还是仅保留外网链接? | [姓名已隐藏] | 待确认(涉及存储成本) |
| Q4 | 外网模型版本管理是否只读展示,内网是否支持切换外网模型版本? | [姓名已隐藏] | 待确认 |
| Q5 | 线索确认、点转面等操作是否支持外网线索(双向同步)? | [姓名已隐藏] | 待确认 |
十、附录
10.1 术语说明
| 术语 | 说明 |
|---|---|
| GPU | 图形处理器,内网AI识别服务器使用的计算硬件(高点视频识别+无人机离线视频识别) |
| NPU | 神经网络处理器,外网某采集平台边缘计算设备使用的AI芯片(仅无人机直播实时识别) |
| 某采集平台 | 外网无人机管理服务平台,负责无人机飞行控制与视频采集 |
| 高点视频 | 安装在高处(铁塔、楼顶等)的固定摄像头视频 |
| 实时识别 | 无人机直播时对视频流进行实时帧抓取与AI识别,在外网NPU边缘计算设备上运行 |
| 离线识别 | 对录制完成后上传的无人机视频文件进行AI识别,在内网GPU服务器上运行 |
| 线索 | AI识别发现的目标对象,经确认后形成执法/处置线索 |
| 点转面 | 将点状线索转换为面状区域(用于占地、违建等场景) |
10.2 参考截图
- 图1:模型中心列表页(
[ID已隐藏].png) - 图2:模型中心详情页(
[ID已隐藏].png) - 图3:线索管理列表页(
[ID已隐藏].jpg)
文档编制:[姓名已隐藏]
编制日期:2026-05-27
下次评审日期:待确定