返回工作笔记
NOTE ARCHIVE现场记录无人机2026-07-08
项目交付

AI线索管理模块-需求规格

AI线索管理模块-需求规格

Clark 更新于 2026-08-31 阅读约 6 分钟 阅读 1
阅读导航

版本:v1.0 | 日期:2026-06-03 | 编写人:[姓名已隐藏] | 状态:初稿


1. 背景与目标

1.1 背景

当前无人机APP在虚拟座舱飞行模式下,已具备AI实时识别能力(如建筑物、裸土、防尘网、坑塘等目标检测)。识别结果在飞行过程中以实时线索面板形式展示(置信度、截图缩略图、鹰眼定位等),数据已实时写入数据库

核心问题:虚拟座舱内的AI线索面板是任务维度的视图——仅展示当前正在执行任务的线索。一旦任务结束退出虚拟座舱,用户就没有入口再回溯查看这些线索了(包括当前任务的和其他历史任务的)。需要新增一个独立的线索管理模块,提供跨任务、跨时间范围的统一查询入口。

1.2 目标

目标项说明
跨任务统一视图打破"仅当前任务可见"的限制,提供所有历史线索的汇总查看入口
任务绑定每条线索与所属航线任务/正射影像任务强绑定,支持按任务维度筛选和追溯
统一入口底部Tab栏提供「AI线索」独立入口(非飞行态也可随时访问)
多维筛选汇总支持按时间、任务类型、线索类型、关键词等多维度筛选聚合
地图可视化在地图上展示线索空间分布,支持点击查看详情

1.3 适用范围

  • 项目甲项目无人机APP(Android端)
  • 涉及AI识别的场景:航摄任务正射影像任务
  • 识别目标类别:建筑物、裸土、防尘网、坑塘等(可扩展)

2. 业务流程

┌──────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  创建/执行任务 │ ──▶ │ 虚拟座舱飞行中     │ ──▶ │  任务结束        │
│  (航摄/正射)  │     │  AI实时识别       │     │  退出座舱        │
└──────────────┘     └──────────────────┘     └────────┬────────┘
       │                     │                        │
       │                     ▼                        │
       │           ┌──────────────────┐               │
       │           │  AI线索实时写入DB  │               │
       │           │  座舱内面板展示     │               │
       │           │  (仅当前任务可见)   │               │
       │           └──────────────────┘               │
       │                                                │
       │                       ◀────────────────────────┘
       │                       任务结束后座舱面板不可访问
       │
       ▼
┌─────────────────┐
│  AI线索管理模块    │  ← 新增独立入口(底部Tab)
│  - 跨任务汇总查看  │    不受"当前任务"限制
│  - 列表/地图浏览   │
│  - 筛选/搜索      │
│  - 线索详情查看    │
│  - 导出/处置流转   │
└─────────────────┘

核心规则

  • 实时阶段(虚拟座舱内):AI引擎持续检测 → 实时写入数据库 → 座舱右侧线索面板查询当前任务的线索 + 鹰眼地图打点
  • 关键约束:座舱内的线索面板是任务作用域视图,只能看到task_id = 当前任务ID的线索,任务结束退出后该入口关闭
  • 访问阶段(线索管理模块):用户通过底部「AI线索」Tab进入,可查看所有任务的历史线索,支持跨任务筛选聚合

3. 功能需求

3.1 模块总览

3.1.1 入口位置

入口位置说明
底部导航栏「AI线索」Tab(与其他Tab并列:现场遍检 / 离线地图 / AI线索 / 无人机 / 个人中心)
虚拟座舱内右侧工具栏「AI线索」按钮(飞行中的实时视图)

3.1.2 页面布局(参考截图)

┌─────────────────────────────────────────────────────────┐
│  AI线索管理                           [跨任务汇总]   [×] │
├─────────────────────────────────────────────────────────┤
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐                    │
│  │线索总数│ │今日新增│ │航线任务│ │正射影像│  ← 统计卡片     │
│  │ 128  │ │  18  │ │  68  │ │  60  │                    │
│  └──────┘ └──────┘ └──────┘ └──────┘                    │
├─────────────────────────────────────────────────────────┤
│  任务类型:[全部任务 ▼]    类型:[全部类型 ▼]               │
│  时间:[开始日期 ~ 结束日期]  🔍[请输入线索名称]            │
│                              [重置]  [筛选]              │
├─────────────────────────────────────────────────────────┤
│  ┌────┐ 坑塘      11:31:02  2025-05-12  航摄任务   92%  │
│  │缩略│ ○ 监测世荣·马A                                   │
│  └────┘                                                 │
│  ┌────┐ 建筑物    11:31:48  2025-05-12  正射影像任务 90%  │
│  │缩略│ ○ 日常巡检B                                       │
│  └────┘                                                 │
│  ...                                                    │
│                        [查看更多线索 ▶]                   │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────────────┐  ┌────────┐                    │
│  │                     │  │ 工具   │                    │
│  │    地图区域          │  │ 查询   │                    │
│  │  (线索空间分布)      │  │ ▲     │                    │
│  │                     │  │ 定位   │                    │
│  │                     │  │ 图层   │                    │
│  └─────────────────────┘  └────────┘                    │
└─────────────────────────────────────────────────────────┘

3.2 功能点详细设计

3.2.1 F01 — 统计概览区(顶部卡片)

字段说明数据来源
线索总数当前筛选条件下线索总量服务端聚合统计
今日新增当日新增线索数create_time当日过滤
航线任务来自航摄任务的线索数task_type=航摄任务聚合
正射影像任务来自正射影像任务的线索数task_type=正射影像任务聚合

交互说明

  • 卡片可点击,点击后自动填充对应筛选条件
  • 数字变化带动画过渡效果
  • 「跨任务汇总」标签:表示当前视图为全任务聚合视角

3.2.2 F02 — 筛选条件区

筛选项控件类型可选值默认值说明
任务类型下拉选择全部任务 / 航摄任务 / 正射影像任务全部任务按绑定的任务分类
类型(线索类型)下拉选择全部类型 / 建筑物 / 裸土 / 防尘网 / 坑塘 / ...全部类型按AI识别目标类别
时间范围日期区间选择器开始日期 ~ 结束日期近7天(或近30天)按线索产生时间
关键词搜索输入框自由输入(线索名称)模糊匹配线索名称

交互说明

  • 点击「重置」清空所有筛选项恢复默认
  • 点击「筛选」触发查询,结果刷新列表+地图点位
  • 筛选条件变化时实时更新顶部统计卡数字

3.2.3 F03 — 线索列表区

每条线索卡片包含以下信息:

字段说明示例
缩略图AI识别时刻的截图(裁剪区域)80×60px
线索名称AI识别的目标类型名称坑塘、建筑物、裸土、防尘网
识别时间线索产生的精确时间11:31:02
任务日期所属任务的执行日期2025-05-12
任务类型航摄任务 / 正射影像任务航摄任务
置信度AI识别置信度百分比(右对齐高亮)92%(蓝色粗体)
操作人员/设备标识执行该任务的飞手或设备名监测世荣·马A

交互说明

  • 点击线索卡片 → 进入线索详情页(F05)
  • 列表支持上拉加载更多(分页)
  • 底部固定「查看更多线索」按钮,点击加载下一页

3.2.4 F04 — 地图展示区

功能点说明
线索点位每条线索在地图上以Marker展示,显示序号或置信度数字
聚合显示多个线索近距离时自动聚合,显示数量气泡(如截图中的 7/8/9/10/11/12)
点击点位高亮该点位,左侧列表联动滚动到对应线索卡片
鹰眼联动与列表双向联动:点列表→地图定位;点地图→列表高亮
右侧工具栏工具 / 查询(收起展开) / 定位(回到当前位置) / 图层切换

图层选项建议

  • 卫星底图(默认)
  • 矢量底图
  • 线索热力图(可选)

3.2.5 F05 — 线索详情页

点击单条线索后进入详情,需展示:

区块内容
基本信息线索ID、名称、类型、置信度、识别时间
任务关联任务名称、任务类型、执行日期、飞手/设备、航线名称
位置信息经[坐标已隐藏]坐标、相对起飞点的方位和距离、海拔高度
影像资料AI识别原图(含检测框标注)、裁剪缩略图大图
飞行姿态采集时的飞行参数(机高、地高、云台角度、航向等)
操作按钮导出线索报告 / 标记已处理 / 转工单 / 删除

3.2.6 F06 — 虚拟座舱实时线索面板(已有能力,需确认持久化对接)

当前虚拟座舱已有的实时线索面板能力(数据已走数据库,但视图受限于当前任务作用域):

已有功能说明
AI识别状态置信度(Accuracy)、平均耗时(Avg Time)、检测数(Detections)
实时线索列表右侧面板滚动列表,查询条件固定为 task_id = 当前任务ID
变焦控制左侧画面变焦(+/-按钮)
鹰眼地图小地图显示飞机位置与当前检测目标方向

现状问题

  • 座舱线索面板的查询是任务隔离的——只能看到正在执行的这个任务的线索
  • 任务结束退出座舱后,该面板入口关闭,用户再无途径查看任何历史线索
  • 已入库的线索数据本身没有丢失,只是缺少一个跨任务的统一查询UI

本次新增要求(新增独立的AI线索管理模块,与座舱面板共用同一套数据库):

  • 新增底部Tab「AI线索」入口,查询范围不受单个任务限制
  • 座舱面板的写入逻辑不变(已实时写DB),新增模块直接复用已有数据
  • 建议任务结束时触发一次数据完整性校验,确保飞行中产生的所有线索均已落库

4. 数据模型

4.1 核心实体关系

┌─────────────┐       ┌──────────────┐       ┌─────────────┐
│   Task      │ 1   N │    Clue      │ N   1 │ ClueType    │
│  (任务)     │──────▶│   (线索)     │──────▶│ (线索类型)   │
└─────────────┘       └──────────────┘       └─────────────┘
       │                     │
       │                     │
       │ 1                 N │
       ▼                     ▼
┌─────────────┐       ┌──────────────┐
│  Device     │       │  ClueImage   │
│  (设备)     │       │ (线索图片)    │
└─────────────┘       └──────────────┘

4.2 线索表(ai_clue)字段设计

字段名类型必填说明
idVARCHAR(32)Y线索唯一ID
task_idVARCHAR(32)Y关联任务ID
task_nameVARCHAR(100)Y冗余:任务名称(方便列表展示)
task_typeTINYINTY任务类型:1=航摄任务 2=正射影像任务
clue_type_idINTY线索类型ID(外键)
clue_type_nameVARCHAR(50)Y冗余:线索类型名称
confidenceDECIMAL(5,2)Y置信度(0~100,如92.00)
[坐标已隐藏])Y[坐标已隐藏]
[坐标已隐藏]6)Y[坐标已隐藏]
altitudeDECIMAL(8,2)N海拔高度(米)
detect_timeDATETIMEYAI检测时间
image_urlVARCHAR(500)Y识别截图URL(含检测框)
crop_image_urlVARCHAR(500)N裁剪缩略图URL
device_idVARCHAR(32)N采集设备ID
operator_idVARCHAR(32)N飞手/操作员ID
operator_nameVARCHAR(50)N飞手姓名
flight_paramsJSONN飞行快照(机高、地高、云台角度、航向等)
statusTINYINTY处理状态:0=待处理 1=已处理 2=已忽略 3=已转工单
process_timeDATETIMEN处理时间
process_noteVARCHAR(500)N处理备注
created_atDATETIMEY创建时间
updated_atDATETIMEY更新时间

4.3 线索类型表(ai_clue_type)

字段名类型说明
idINT主键自增
type_codeVARCHAR(20)类型编码(如 building/bare_soil/dust_net/pond)
type_nameVARCHAR(50)类型中文名(建筑物/裸土/防尘网/坑塘)
icon_urlVARCHAR(200)类型图标
colorVARCHAR(10)地图Marker颜色(如 #1890ff)
sort_orderINT排序号
is_enabledTINYINT是否启用

4.4 与现有任务表的关联方式

-- 线索通过 task_id 关联到现有任务表
-- 假设现有任务表为 flight_task 或类似表名
-- 关键关联字段:
ALTER TABLE ai_clue ADD CONSTRAINT fk_clue_task 
    FOREIGN KEY (task_id) REFERENCES flight_task(id);

5. 接口设计

5.1 接口清单

序号接口名称方法说明
API-01线索列表(分页)GET支持筛选条件的分页查询
API-02线索统计概览GET顶部四个统计卡片数据
API-03线索详情GET单条线索完整信息
API-04线索地图点位GET返回筛选条件下线索坐标集合
API-05写入线索POST虚拟座舱实时写入(已有接口,新增模块复用
API-06更新线索状态PUT/PATCH标记处理状态、备注等
API-07线索导出POST导出Excel/PDF报告
API-08线索删除DELETE逻辑删除

5.2 关键接口详解

API-01 线索列表

GET /api/v1/clues/list

Query Params:
  task_type?     -- Integer  任务类型(1=航摄 2=正射影像,不传=全部)
  clue_type_id?  -- Integer  线索类型ID(不传=全部)
  start_date?    -- Date     开始日期(格式 yyyy-MM-dd)
  end_date?      -- Date     结束日期
  keyword?       -- String   关键词搜索(模糊匹配线索名称)
  page?          -- Integer  页码(默认1)
  page_size?     -- Integer  每页条数(默认20)

Response:
{
  "code": 0,
  "data": {
    "total": 128,
    "page": 1,
    "page_size": 20,
    "list": [
      {
        "id": "CL202605120001",
        "task_id": "TK202605120001",
        "task_name": "某县市日常巡检-A",
        "task_type": 1,
        "task_type_name": "航摄任务",
        "clue_type_name": "坑塘",
        "confidence": 92.00,
        "detect_time": "2025-05-12 11:31:02",
        "image_url": "https://.../clue_xxx.jpg",
        "crop_image_url": "https://.../crop_xxx.jpg",
        "operator_name": "监测世荣·马A",
        "status": 0,
        "[坐标已隐藏]
        "[坐标已隐藏]
      }
    ]
  }
}

API-02 线索统计概览

GET /api/v1/clues/stats

Query Params: (同API-01的筛选条件)

Response:
{
  "code": 0,
  "data": {
    "total_count": 128,
    "today_count": 18,
    "flight_task_count": 68,
    "ortho_task_count": 60
  }
}

API-05 写入线索(虚拟座舱实时调用,已有接口

此接口为座舱实时识别时调用的写入接口,已在线运行。新增的线索管理模块(API-01~04)直接读取该接口写入的数据即可。此处列出仅作完整性参考。

POST /api/v1/clues/create

Body:
{
  "task_id": "TK202605120001",
  "task_name": "某县市日常巡检-A",
  "task_type": 1,
  "clue_type_id": 4,
  "clue_type_name": "坑塘",
  "confidence": 92.00,
  "[坐标已隐藏]
  "[坐标已隐藏]
  "altitude": 45.5,
  "detect_time": "2025-05-12T11:31:02",
  "image_url": "https://.../detect_001.jpg",
  "device_id": "DJIM3TD_001",
  "operator_id": "U10086",
  "operator_name": "马A",
  "flight_params": {
    "altitude_agl": 120.5,
    "altitude_rel": 170.1,
    "distance_start": 3231.0,
    "horizontal_speed": 15.0,
    "gimbal_pitch": -68,
    "heading": 180
  }
}

批量写入接口(任务结束时调用,一次性同步剩余未落库线索):

POST /api/v1/clues/batch-create
Body: { "clues": [ { ... }, { ... }, ... ], "task_id": "xxx" }

6. 非功能性需求

6.1 性能要求

指标要求
列表加载首屏 < 1.5秒(20条分页)
地图渲染≤200个点位渲染 < 1秒
实时写入单条线索写入 < 300ms
批量归档100条以内批量归档 < 3秒
筛选响应统计卡片+列表联动脉冲 < 800ms

6.2 存储估算

参数估算依据
单张缩略图大小约 50~100KB(JPEG压缩后)
单张原图大小约 500KB~2MB(含检测框标注)
单条线索记录约 2KB(不含图片)
日均线索量按日均5架次 × 每架次2050条 ≈ 100250条/天
月存储增量文本约15MB + 图片约2~5GB/月(建议定期归档冷储)

6.3 离线策略(适用于座舱实时写入链路)

考虑到无人机作业场景可能存在弱网/无网络环境,座舱侧的线索写入需做离线兜底:

场景策略
有网络实时写入服务端(当前已有能力)
弱网络本地SQLite缓存,网络恢复后自动同步上传
无网络本地SQLite缓存,返回有网区域后手动/自动同步
同步机制基于线索ID幂等去重,避免重复写入

说明:本节描述的是数据生产端(虚拟座舱)的离线策略。新增的线索管理模块数据消费端(读取/查询),在有网络环境下正常访问服务端API即可。


7. 界面原型要点(基于截图还原)

7.1 配色规范

元素色值用途
主色调#1890ff(蓝色)Tab选中、按钮、置信度高亮
背景色#FFFFFF卡片背景
置信度分级≥90% 蓝 #1890ff / 8089% 绿 #52c41a / 7079% 橙 #faad14 / <70% 红 #ff4d4f置信度颜色区分
统计卡片渐变蓝底顶部4个统计卡片
地图聚合气泡橙红渐变圆形地图聚合数字标记

7.2 底部Tab栏结构

[现场遍检] [离线地图] [AI线索★] [无人机] [个人中心]
                         ↑ 当前选中态

7.3 虚拟座舱右侧工具栏顺序(从上到下)

┌──────┐
│ AI识别 │
│  航迹  │
│  搜索  │
│  操控  │
│  任务  │
│ AI线索 │  ← 本次重点(已有UI,需打通数据持久化)
│  更多… │
└──────┘

8. 待确认事项(Q&A)

编号问题建议优先级
Q01线索是否需要支持人工标注修正?(如AI判错,人工改为其他类型)建议V1.0先只做状态管理(待处理/已处理/忽略),人工改类型放V1.1P1
Q02是否需要线索转工单能力?即发现线索后一键转为处置工单建议预留接口字段(status=3已转工单),实际工单系统对接看整体规划P1
Q03图片存储走对象存储(OSS)还是本地服务器建议OSS(适合大量图片+CDN加速),与现有正射影像存储方案保持一致P0
Q04线索数据保留周期多长?是否需要定期清理归档?建议默认保留180天,超期转入冷存储P1
Q05是否需要多端同步?(APP端录入 → Web端/PC端也能查看)建议服务端统一存储,后续Web管理端可复用同一套APIP1
Q06虚拟座舱实时写入频率过高时(密集识别场景),当前是逐条写还是攒批写?是否需要优化?建议确认现有写入策略;若逐条写则可考虑优化为双策略:飞行中本地缓存+定时批量(每10秒或每5条),任务结束时最终归档校验P1
Q07「跨任务汇总」之外,是否还需要单任务维度的查看入口?(如从任务详情页跳转到该任务的所有线索)强烈建议支持,从任务详情增加「查看线索」入口P0

9. 版本规划建议

V1.0(MVP)

  • 线索基础CRUD(列表/详情/筛选/统计)
  • 虚拟座舱实时线索 → 服务端持久化链路打通
  • 地图点位展示+聚合+联动
  • 任务绑定关联(线索 ↔ 任务 一对多)
  • 离线缓存+自动同步机制
  • 底部Tab入口

V1.1(迭代)

  • 线索人工标注修正(改类型/调置信度)
  • 线索转工单流转
  • 线索导出报告(Excel/PDF)
  • 烛力图/密度分析视图
  • Web端管理后台复用

10. 附录

附录A:名词解释

术语说明
AI线索AI图像识别算法在无人机实时视频流或正射影像中检测到的目标实例
虚拟座舱无人机APP中飞行控制主界面,集成实时视频、遥测数据、AI识别等功能
航线任务按预设航线自主飞行的任务类型
正射影像任务进行正射摄影测量作业的任务类型
鹰眼地图小尺度地图窗口,用于展示全局位置和方向感知
置信度AI模型对识别结果的概率评估(0~100%)

附录B:参考文档

  • 《某采集平台无人机管理服务平台-二次开发接口文档》
  • 《大疆机场2产品介绍》
  • 《高点视频AI识别技术方案》
  • 某县市项目甲体系相关需求文档

本文档基于截图UI原型及业务描述编写,待评审后进入开发排期。