返回工作笔记
NOTE ARCHIVE现场记录无人机2026-07-08
AI识别图斑核查

高点AI目标经纬度定位-需求文档

高点AI目标经纬度定位-需求文档

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

版本:V1.0 编制日期:2026年6月 编制部门:华中业务中心·开发与技术支持部 状态:初稿


目录

  1. 需求概述
  2. 系统架构
  3. 视频监控平台对接需求
  4. AI目标识别需求
  5. 目标经[坐标已隐藏]定位算法需求
  6. 数据存储需求
  7. 接口设计需求
  8. 界面展示需求
  9. 非功能需求
  10. 附录

1. 需求概述

1.1 需求背景

市项目甲项目已部署高点视频监控系统,接入应急监控、生态环境监控、林业监控等多类摄像头资源。当前系统已具备AI识别能力(火点、烟尘、工程机械等目标的检测分类),但识别结果仅包含画面中的像素位置(bounding box[坐标已隐藏]无法直接关联到地理坐标。

为解决"AI发现了目标,但不知道目标在哪儿"的问题,需要实现基于摄像头参数的AI目标经[坐标已隐藏]定位功能:通过摄像头安装高度、俯仰角、水平偏转角等参数,结合AI识别目标在画面中的像素位置,利用三角测量公式推算出目标的实际地理坐标(经[坐标已隐藏]

1.2 核心目标

目标项描述
摄像头参数获取对接市视频监控平台,实时获取摄像头安装参数(高度、角度、焦距等)
AI目标识别对视频流帧进行目标检测,获取目标在画面中的像素[坐标已隐藏]
经[坐标已隐藏]推算基于摄像头参数 + AI识别像素坐标,利用三角测量公式计算目标实际经[坐标已隐藏]
结果展示在地图上标注识别目标位置,支持查看历史记录和轨迹

1.3 适用场景

场景说明
森林防火AI识别火点后自动计算火点经[坐标已隐藏]直接推送消防力量
违法占地AI识别工程机械后定位违法施工位置,生成执法线索
矿山监管识别越界开采车辆,精确定位越界位置
工程建设监测施工进度,记录施工作业位置变化

2. 系统架构

2.1 整体架构

┌──────────────────────────────────────────────────────────────┐
│                        系统架构总览                           │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌──────────┐    ┌──────────────┐    ┌───────────────────┐   │
│  │ 视频监控  │───→│  视频流获取   │───→│  视频帧抽取       │   │
│  │  平台    │    │  (RTSP/GB28181)│   │  (定时/实时/比对) │   │
│  └──────────┘    └──────────────┘    └────────┬──────────┘   │
│       │                                      │              │
│       │ 获取摄像头参数                        │              │
│       │ (高度/角度/焦距/经[坐标已隐藏]            │
│       │                              ┌───────────────────┐   │
│       │                              │  AI目标检测模型    │   │
│       │                              │  输出:bbox[坐标已隐藏]
│       │                              │  (像素x, y, w, h) │   │
│       │                              └────────┬──────────┘   │
│       │                                       │              │
│       ▼                                       ▼              │
│  ┌───────────┐                        ┌───────────────────┐   │
│  │ 摄像头参数 │────────────────────────→│  经[坐标已隐藏]定位算法   │   │
│  │ 获取接口  │                        │  (三角测量法)     │   │
│  └───────────┘                        └────────┬──────────┘   │
│                                                 │              │
│                                                 ▼              │
│                                        ┌───────────────────┐   │
│                                        │  目标经[坐标已隐藏]结果    │   │
│                                        │  ([坐标已隐藏]
│                                        └────────┬──────────┘   │
│                                                 │              │
│                                    ┌────────────┼────────┐    │
│                                    ▼            ▼        ▼    │
│                              ┌──────────┐ ┌────────┐ ┌─────┐  │
│                              │ 地图标注  │ │ 数据存储 │ │ 告警 │  │
│                              └──────────┘ └────────┘ └─────┘  │
│                                                              │
└──────────────────────────────────────────────────────────────┘

2.2 数据流

摄像头参数(API) ──→ 参数解析 ──→┐
                              ├──→ 三角测量计算 ──→ 经[坐标已隐藏][坐标已隐藏]存储/展示
AI识别结果(像素) ──→ 像素转换 ──→┘

3. 视频监控平台对接需求

3.1 平台概述

对接市视频监控平台,获取摄像头资源列表、视频流地址、云台控制及摄像头安装参数。

3.2 Token认证

项目说明
接口地址/qxduijie/getToken
请求方式GET
认证方式Token鉴权,有效期24小时
缓存策略系统本地缓存Token,过期前自动刷新

3.3 监控资源列表获取

接口路径说明
应急监控列表/qxduijie/getYjList获取应急类监控摄像头列表
生态监控列表/qxduijie/getStList获取生态环境类监控摄像头列表
林业监控列表/qxduijie/getLyList获取林业类监控摄像头列表

返回字段要求:

字段说明是否必须
摄像头名称监控点名称
摄像头编码通道编码(channelCode)
视频流地址RTSP/GB28181流地址
摄像头类型固定枪机/快球/半球
所属区域行政区划/管辖区域

3.4 视频流获取

项目说明
接口地址/qxduijie/getStream
请求方式GET
输入参数channelCode(通道编码)
输出视频流地址(RTSP)

3.5 云台控制

项目说明
接口地址/qxduijie/control
请求方式GET
功能远程控制摄像头水平旋转、垂直俯仰、变焦
适用场景定位AI发现的目标后,远程调整摄像头视角进行确认

3.6 摄像头参数获取(核心接口)

项目说明
接口地址/shiduijie/getChannelInfo
请求方式GET
输入参数channelCode(通道编码)
用途获取摄像头安装参数,用于经[坐标已隐藏]定位计算

返回字段详解:

字段名类型说明取值范围用于定位计算示例值
channelCodeString通道编码(摄像头唯一标识)--"CH001"
[坐标已隐藏]摄像头安装位置[坐标已隐藏]是**"113.9265"
[坐标已隐藏]摄像头安装位置[坐标已隐藏]是**"30.9243"
installAddressString设备安装地址(文本描述)--"XX路XX号"
cameraHeightString摄像头安装高度(米)-"30"
horizontalString水平位置,归一化值-1 ~ 1否(用于换算)"0.5"
horizontalAbsString水平位置,真实角度值0 ~ 360(度)"180"
verticalString垂直位置,归一化值-1 ~ 1否(用于换算)"-0.08"
verticalAbsString垂直位置,真实角度值-180 ~ 180(度)"-15"
zoomString变倍值,归一化值0 ~ 1"0.5"
zoomValueString显示放大倍数,真实值1 ~ MaxZoom否(用于视场角计算)"10"
horizontalMaxString水平转动范围最大角度(度)-"360"
horizontalMinString水平转动范围最小角度(度)-"0"
verticalMaxString垂直转动范围最大角度(度)-"180"
verticalMinString垂直转动范围最小角度(度)-"-180"
focusMaxString焦距最大值(mm)-"180"
focusMinString焦距最小值(mm)-"6"
irisMaxString光圈最大值-"9.7"
irisMinString光圈最小值-"3.6"

字段说明

  • 归一化值与真实值horizontal/vertical/zoom 为归一化值(归一化到特定区间),仅用于云台控制指令;经[坐标已隐藏]定位计算必须使用真实值 horizontalAbs/verticalAbs/zoomValue
  • cameraHeight:摄像头镜头中心距离地面的高度,单位为米。
  • horizontalAbs:水平偏转角真实值,0°~360°表示摄像头光轴水平投影方向。
  • verticalAbs:垂直角度真实值,-180°~180°。通常0°表示水平,正值表示俯视(向下),负值表示仰视(向上),具体正负号约定需根据摄像头型号确认。
  • 所有返回字段类型为String,计算时需转换为数值类型。
  • zoomValue(放大倍数) 可用于估算当前焦距:当前焦距 ≈ focusMin × zoomValue

3.7 参数获取策略

策略说明
静态参数[坐标已隐藏][坐标已隐藏]安装高度(cameraHeight)、焦距范围(focusMax/focusMin)、安装地址(installAddress):摄像头安装后基本不变,可一次性获取并缓存
动态参数当前水平角(horizontalAbs)、当前俯仰角(verticalAbs)、放大倍数(zoomValue):随云台转动实时变化,需在每次AI识别时实时获取
刷新频率动态参数在AI识别抓帧时同步获取,确保参数与画面对应
异常处理参数获取失败时,本次识别结果仅记录像素坐标,不计算经[坐标已隐藏]并记录异常日志

3.8 实际数据情况与参数补全方案

实测发现:调用 getChannelInfo 接口后,大部分定位计算必需参数返回 null

实测返回数据示例(channelCode: 1900515481946173441):

字段实际返回值状态
horizontalMax"59°"有值
horizontalMin"2.9°"有值
verticalMax"+90°"有值
verticalMin"-20°"有值
focusMax"180mm"有值
focusMin"6mm"有值
irisMax"F9.7"有值
irisMin"F3.6"有值
channelCode"1900515481946173441"有值
[坐标已隐藏]缺失
[坐标已隐藏]缺失
cameraHeightnull缺失
horizontalAbsnull缺失
verticalAbsnull缺失
zoomValuenull缺失
horizontal / vertical / zoomnull缺失
installAddressnull缺失

原因分析

  • 范围参数(Max/Min)为设备出厂硬件参数,由平台自动采集,有值
  • 位置参数([坐标已隐藏]高度参数(cameraHeight)需人工配置录入,目前平台未配置
  • 实时状态参数(horizontalAbs、verticalAbs、zoomValue)需云台在线且支持状态回传,当前可能因云台离线或接口未实现而返回 null

参数补全方案:

缺失参数补全方案实施方优先级
**[坐标已隐藏]方案A:视频监控平台后台管理界面增加摄像头坐标配置功能<br>方案B:通过安装地址调用高德地图API逆地理编码获取<br>方案C:在项目甲平台地图上点选标注平台方 / 我方P0
cameraHeight安装人员实地测量后录入平台,或项目甲平台提供配置入口平台方 / 安装方P0
installAddress安装时录入设备安装地址文本安装方P1
horizontalAbs方案A:确认视频监控平台是否有其他PTZ状态查询接口<br>方案B:通过云台控制协议(如ONVIF)直接查询云台状态<br>方案C:调用云台控制接口时记录指令角度作为当前角度平台方 / 我方P0
verticalAbs同上同上P0
zoomValue同上同上P1

摄像头参数配置管理功能需求(新增):

由于 getChannelInfo 返回的必需参数可能为 null,项目甲平台需提供参数配置管理模块,支持:

  1. 手动配置:在摄像头管理页面,按 channelCode 配置/修改以下参数:

    • [坐标已隐藏][坐标已隐藏]
    • 安装高度(cameraHeight)
    • 安装地址(installAddress)
  2. 参数来源优先级

    最终值 = API实时值 ?? 平台手动配置值 ?? 默认值
    
    • 优先使用 getChannelInfo API 返回的非 null 值
    • API 返回 null 时,使用平台手动配置的值
    • 均无值时标记为"参数未配置",不进行经[坐标已隐藏]计算
  3. 配置数据存储

    字段类型说明
    channel_codeString通道编码(关联摄像头)
    config_[坐标已隐藏]手动配置的[坐标已隐藏]
    config_[坐标已隐藏]手动配置的[坐标已隐藏]
    config_heightFloat手动配置的安装高度(米)
    config_addressString手动配置的安装地址
    update_timeDateTime最后配置更新时间
    config_userString配置操作人

4. AI目标识别需求

4.1 识别触发方式

沿用现有三种识别模式,识别触发方式不变:

模式触发说明
实时识别手动点击"AI识别"按钮即时开启,实时检测
定时识别配置定时计划后自动执行按计划周期抓帧识别
分时比对识别配置比对计划后自动执行不同时点照片差分比对

4.2 识别结果格式

AI模型输出目标的bounding box(边界框),需记录以下信息:

识别结果 = {
    "targetId": "唯一标识",
    "targetType": "目标类别",          // 如:fire(火点)、smoke(烟尘)、excavator(挖掘机)等
    "confidence": 0.95,                // 置信度 0~1
    "bbox": {
        "x": 580,                      // 左上角x坐标(像素)
        "y": 320,                      // 左上角y坐标(像素)
        "width": 120,                  // 边界框宽度(像素)
        "height": 80                   // 边界框高度(像素)
    },
    "centerPixel": {                   // 中心点像素[坐标已隐藏]       // 中心x像素
        "py": 360                      // 中心y像素
    },
    "imageWidth": 1920,                // 图像宽度(像素)
    "imageHeight": 1080                // 图像高度(像素)
}

4.3 关键坐标说明

坐标项定义用途
图像原点 (0,0)图像左上角像素坐标系基准
图像中心 (cx, cy)图像几何中心点 = (imageWidth/2, imageHeight/2)光轴在画面中的投影位置
目标中心 (px, py)AI识别目标bounding box的中心像素[坐标已隐藏]经[坐标已隐藏]计算的核心输入
像素偏移 (dx, dy)目标中心相对于图像中心的像素偏移 dx=px-cx, dy=py-cy角度偏移计算依据

5. 目标经[坐标已隐藏]定位算法需求

5.1 算法原理

本功能采用三角测量法,利用摄像头的几何参数和AI识别目标在画面中的像素位置,推算目标的实际地理坐标。

核心思路:

已知条件:
  - 摄像头安装高度 H(米)
  - 摄像头安装经[坐标已隐藏]
  - 摄像头当前俯仰角 θ(度)
  - 摄像头当前水平偏转角 φ(度)
  - 摄像头当前焦距 f(毫米)
  - 摄像头传感器宽度/高度(毫米)
  - AI识别目标中心像素[坐标已隐藏]

求解目标:目标在地面的经[坐标已隐藏]rget)

5.2 算法步骤

步骤一:计算像素到角度偏移

将AI识别目标在画面中的像素偏移量转换为相对于光轴的角度偏移。

1.1 计算像素偏移

dx_px = px - cx        // 水平像素偏移(目标中心x - 图像中心x)
dy_px = py - cy        // 垂直像素偏移(目标中心y - 图像中心y)

其中 cx = imageWidth / 2cy = imageHeight / 2

1.2 计算视场角(FOV)

根据焦距和传感器尺寸计算水平和垂直视场角:

FOV_h = 2 × arctan(sensor_width / (2 × f))       // 水平视场角
FOV_v = 2 × arctan(sensor_height / (2 × f))      // 垂直视场角

其中:

  • f:当前焦距(毫米),取当前实际焦距值
  • sensor_width:传感器宽度(毫米),取自摄像头规格参数
  • sensor_height:传感器高度(毫米),取自摄像头规格参数

1.3 计算单个像素对应的角度

α_per_px_h = FOV_h / imageWidth      // 每水平像素对应的角度
α_per_px_v = FOV_v / imageHeight     // 每垂直像素对应的角度

1.4 计算目标相对于光轴的角度偏移

Δα_h = dx_px × α_per_px_h    // 水平角度偏移(正值为光轴右侧)
Δα_v = dy_px × α_per_px_v    // 垂直角度偏移(正值为光轴下方)

步骤二:计算目标到摄像头的水平距离

利用俯仰角和垂直角度偏移,通过三角函数计算目标到摄像头的水平距离。

2.1 计算目标的实际俯仰角

θ_target = θ + Δα_v

其中:

  • θ:摄像头当前俯仰角真实值(API获取的 verticalAbs 字段,取值 -180°~180°)
  • Δα_v:目标相对于光轴的垂直角度偏移

注意角度约定(verticalAbs)

  • verticalAbs 取值范围 -180°~180°,具体正负号约定需根据摄像头型号确认
  • 常见约定:0° = 水平,正值 = 俯视(向下),负值 = 仰视(向上)
  • 垂直角度偏移 Δα_v 正值 = 画面下方(像素y增大方向)
  • 实际对接时需验证摄像头 verticalAbs 的正负号方向,确保计算正确

2.2 计算水平距离

D = H / tan(|θ_target|)     // 水平距离(米)

其中:

  • H:摄像头安装高度(API获取的cameraHeight
  • θ_target:目标相对于摄像头的俯仰角
推导过程:
         摄像头
           ●  ← 高度 H
          /|
         / |
        /  |  ← 水平距离 D
       /   |
      /θ_target|
     ──────────
        目标地面位置

    tan(θ_target) = H / D
    ∴ D = H / tan(θ_target)

异常处理:

  • θ_target 接近0°时(即目标几乎在摄像头正下方),tan值趋近无穷大,距离计算不稳定,需设置最小俯仰角阈值(建议≥3°)
  • θ_target 为负值(仰视方向)时,表示目标在摄像头上方(如飞鸟、无人机),此时无法计算地面距离,标记为"空中目标"

步骤三:计算目标相对于摄像头的方位角

φ_target = φ + Δα_h

其中:

  • φ:摄像头当前水平偏转角真实值(API获取的 horizontalAbs 字段,取值 0°~360°)
  • Δα_h:目标相对于光轴的水平角度偏移

步骤四:计算目标的经[坐标已隐藏]坐标

根据方位角和水平距离,在摄像头位置的基础上计算经[坐标已隐藏]偏移。

4.1 计算经[坐标已隐藏]偏移量

ΔLon = D × sin(φ_target) / (111320 × cos(Lat_cam))    // [坐标已隐藏]偏移(度)
ΔLat = D × cos(φ_target) / 111320                       // [坐标已隐藏]偏移(度)

其中:

  • 111320:1度[坐标已隐藏]公里(米转度时的系数)
  • cos(Lat_cam):[坐标已隐藏]修正因子,修正[坐标已隐藏]方向的实际距离

**4.2 计算目标经[坐标已隐藏]

Lon_target = Lon_cam + ΔLon
Lat_target = Lat_cam + ΔLat

5.3 算法流程图

开始
 │
 ▼
获取摄像头参数 ──────────────────────┐
  (cameraHeight, verticalAbs,      │
   horizontalAbs, [坐标已隐藏]
   zoomValue, focusMax, focusMin,  │
   sensor_width, sensor_height)    │
                                     │
获取AI识别结果 ──────────────────────┤
  (px, py, imageWidth, imageHeight)│
                                     │
 ▼                                   ▼
参数校验:必需参数是否齐全? ──否──→ 标记"参数缺失"
  ([坐标已隐藏]                仅记录像素[坐标已隐藏]bs)           不计算经[坐标已隐藏]
   │                                   结束
   是
   │
   ▼
计算像素偏移(dx_px, dy_px)     计算当前焦距f
                                     │
 ▼                                   ▼
计算视场角(FOV_h, FOV_v) ──→ 计算角度偏移(Δα_h, Δα_v)
                                     │
                                     ▼
                              计算目标俯仰角 θ_target = θ + Δα_v
                                     │
                                     ▼
                              θ_target 接近 0°? ──是──→ 标记为"正下方目标"
                                     │                         不计算经[坐标已隐藏]
                                    否
                                     │
                                     ▼
                              计算水平距离 D = H / tan(|θ_target|)
                                     │
                                     ▼
                              计算方位角 φ_target = φ + Δα_h
                                     │
                                     ▼
                              计算经[坐标已隐藏]偏移(ΔLon, ΔLat)
                                     │
                                     ▼
                              计算目标经[坐标已隐藏]
                              Lon_target = Lon_cam + ΔLon
                              Lat_target = Lat_cam + ΔLat
                                     │
                                     ▼
                                   输出结果
                                   结束

5.4 算法参数汇总

参数类别参数名来源说明
输入参数H (cameraHeight)getChannelInfo摄像头安装高度(米)
θ (verticalAbs)getChannelInfo当前俯仰角真实值(度,-180~180)
φ (horizontalAbs)getChannelInfo当前水平偏转角真实值(度,0~360)
Lon_cam ([坐标已隐藏] 摄像头[坐标已隐藏]
Lat_cam ([坐标已隐藏] 摄像头[坐标已隐藏]
zoomValuegetChannelInfo当前放大倍数,用于估算焦距
sensor_width摄像头规格传感器宽度(毫米)
sensor_height摄像头规格传感器高度(毫米)
px, pyAI识别结果目标中心像素[坐标已隐藏]
imageWidth, imageHeight视频帧属性图像尺寸(像素)
中间变量cx, cy计算图像中心[坐标已隐藏]
dx_px, dy_px计算像素偏移量
FOV_h, FOV_v计算视场角(度)
α_per_px_h, α_per_px_v计算每像素对应角度
Δα_h, Δα_v计算角度偏移量(度)
θ_target计算目标俯仰角(度)
D计算水平距离(米)
φ_target计算目标方位角(度)
输出结果Lon_target计算目标[坐标已隐藏]
Lat_target计算目标[坐标已隐藏]

5.5 算法精度分析

影响因素影响程度说明
摄像头高度H误差高度误差1m,在100m距离处造成约1m定位误差
俯仰角θ误差高(近景)/ 低(远景)近距离目标对角度误差更敏感
水平偏转角φ误差100m距离处,1°角度误差造成约1.7m横向偏差
焦距f误差影响视场角计算,进而影响角度偏移计算
目标高度(非地面目标)算法假设目标在地面上,如目标有高度(如烟囱顶部),会产生误差
地面起伏算法假设地面平坦,山地丘陵区域误差增大

预期精度:

目标距离预期定位精度说明
50m以内±3m近景,精度较高
50m-200m±5-10m中景,主要定位范围
200m-500m±10-30m远景,精度下降
500m以上±30m以上超远距离,仅作粗略定位

优化方向:对于高精度需求场景,可采用多点标定法(已知地面控制点反算修正参数)来提升定位精度。

5.6 边界条件与异常处理

场景处理方式
θ_target 接近0°(≤3°)标记为"正下方",不计算经[坐标已隐藏]
θ_target < 0°(仰视方向,需根据verticalAbs正负约定确认)标记为"空中目标",不计算地面经[坐标已隐藏]
摄像头参数获取失败仅记录像素坐标,经[坐标已隐藏]字段填"NULL",记录异常日志
zoomValue为0或缺失使用默认焦距 focusMin(最小焦距)
目标超出视场角范围不应出现(AI在画面中检测到的目标必然在视场内)
传感器参数缺失需建立摄像头型号-传感器参数对照表,支持手动配置
verticalAbs/horizontalAbs正负号与预期不符首次对接时需验证角度正方向,必要时在算法中增加符号修正系数
[坐标已隐藏]为 null 且无手动配置值标记为"摄像头参数未配置",仅记录像素坐标,不计算经[坐标已隐藏]界面提示运维人员补充配置
horizontalAbs/verticalAbs/zoomValue 为 null 且无手动配置值标记为"云台状态不可用",可能原因:云台离线、接口未实现、不支持状态回传;仅记录像素坐标,界面提示运维人员检查云台连接

6. 数据存储需求

6.1 识别记录表(ai_detection_record)

字段名类型说明
idString主键UUID
channel_codeString摄像头通道编码
channel_nameString摄像头名称
detect_timeDateTime识别时间
detect_typeString识别模式(realtime/scheduled/comparison)
target_typeString目标类别
confidenceFloat置信度
image_urlString识别截图存储路径
bbox_xInteger边界框左上角x[坐标已隐藏]
bbox_yInteger边界框左上角y[坐标已隐藏]
bbox_widthInteger边界框宽度
bbox_heightInteger边界框高度
center_pxInteger目标中心x像素
center_pyInteger目标中心y像素
camera_heightFloat摄像头高度(米)
camera_vertical_absFloat俯仰角真实值(verticalAbs,度)
camera_horizontal_absFloat水平偏转角真实值(horizontalAbs,度)
camera_[坐标已隐藏]摄像头[坐标已隐藏]
camera_[坐标已隐藏]摄像头[坐标已隐藏]
camera_focusFloat当前焦距估算值(毫米),通过 zoomValue × focusMin 估算
camera_zoom_valueFloat当前放大倍数(zoomValue)
target_[坐标已隐藏]计算后的目标[坐标已隐藏]
target_[坐标已隐藏]计算后的目标[坐标已隐藏]
target_distanceFloat目标到摄像头的水平距离(米)
calc_statusString计算状态(success/under_camera/air_target/param_missing/error)
calc_error_msgString计算失败原因说明
create_timeDateTime记录创建时间

6.2 摄像头参数缓存表(camera_param_cache)

字段名类型说明
channel_codeString通道编码(主键)
camera_heightFloat安装高度(米)
[坐标已隐藏][坐标已隐藏]
[坐标已隐藏][坐标已隐藏]
focus_minFloat最小焦距(毫米)
focus_maxFloat最大焦距(毫米)
horizontal_minFloat水平转动最小角度
horizontal_maxFloat水平转动最大角度
vertical_minFloat垂直转动最小角度
vertical_maxFloat垂直转动最大角度
sensor_widthFloat传感器宽度(毫米)
sensor_heightFloat传感器高度(毫米)
update_timeDateTime参数更新时间

7. 接口设计需求

7.1 对内接口(平台内部调用)

7.1.1 获取摄像头参数

接口路径:/api/camera/{channelCode}/params
请求方式:GET
功能说明:获取指定摄像头的安装参数(优先读取缓存,缺失则调用视频监控平台API)
返回内容:
{
    "channelCode": "CH001",
    "cameraHeight": 30.0,
    "[坐标已隐藏]
    "[坐标已隐藏]
    "installAddress": "XX路XX号",
    "currentHorizontalAbs": 180.0,
    "currentVerticalAbs": -15.0,
    "currentZoomValue": 10,
    "focusMax": 180.0,
    "focusMin": 6.0,
    "sensorWidth": 6.17,
    "sensorHeight": 4.55,
    "source": "api|cache"
}

7.1.2 目标经[坐标已隐藏]计算

接口路径:/api/ai/geolocate
请求方式:POST
功能说明:根据摄像头参数和AI识别像素坐标,计算目标经[坐标已隐藏]
请求体:
{
    "channelCode": "CH001",
    "targetPixelX": 640,
    "targetPixelY": 360,
    "imageWidth": 1920,
    "imageHeight": 1080,
    "targetType": "fire",
    "confidence": 0.95
}
返回内容:
{
    "success": true,
    "targetLon": 113.9282,
    "targetLat": 30.9251,
    "distance": 85.3,
    "cameraParams": {
        "height": 30.0,
        "verticalAbs": -15.0,
        "horizontalAbs": 180.0,
        "zoomValue": 10,
        "[坐标已隐藏]
        "[坐标已隐藏]
    },
    "calcStatus": "success",
    "precision": "medium"    // low/medium/high
}

7.2 对外接口(供前端调用)

7.2.1 查询识别记录(含经[坐标已隐藏]

接口路径:/api/ai/detection/list
请求方式:GET
查询参数:channelCode, target_type, start_time, end_time, page, size
返回内容:分页列表,包含所有识别记录及计算后的经[坐标已隐藏]

7.2.2 获取识别记录详情

接口路径:/api/ai/detection/{id}
请求方式:GET
返回内容:单条识别记录详情,包含完整的计算参数和过程信息

8. 界面展示需求

8.1 识别结果地图标注

功能点说明
地图展示在GIS地图上展示AI识别目标的经[坐标已隐藏]位置标注
标注样式不同目标类型使用不同图标(火点🔴、工程机械🚜、车辆🚗等)
点击详情点击标注弹出详情面板,显示:目标类型、置信度、识别截图、经[坐标已隐藏]距离、时间
摄像头位置同时展示摄像头位置,用连线表示"摄像头→目标"的方向

8.2 识别结果列表

说明
时间识别时间
摄像头摄像头名称
目标类型识别出的目标类别
置信度AI识别置信度
经[坐标已隐藏]计算出的目标经[坐标已隐藏]可点击跳转地图)
距离目标到摄像头的水平距离
状态定位状态(成功/失败原因)
操作查看截图、地图定位、云台转向

8.3 定位精度标记

状态标记方式说明
精确定位绿色定位图标距离<100m,精度较高
中等精度黄色定位图标距离100-300m,精度一般
粗略定位橙色定位图标距离>300m,仅供参考
计算失败灰色标记参数缺失或异常,未计算出经[坐标已隐藏]

9. 非功能需求

9.1 性能要求

指标要求
经[坐标已隐藏]计算响应时间≤50ms(单目标)
批量计算(≤100目标)≤500ms
摄像头参数获取响应时间≤1秒(含网络请求)
参数缓存命中率≥95%(减少API调用频率)

9.2 可靠性要求

项目要求
参数获取失败不影响AI识别,仅经[坐标已隐藏]字段为空
计算异常记录详细错误日志,不中断主流程
缓存降级API不可用时使用缓存参数计算,标注"使用缓存参数"
数据一致性经[坐标已隐藏]计算与AI识别必须使用同一时刻的摄像头参数

9.3 扩展性要求

项目说明
算法可替换定位算法封装为独立模块,支持未来替换为更复杂的针孔模型或单应性矩阵法
参数来源可扩展除API获取外,支持手动录入和批量导入摄像头参数
多坐标系支持初始支持WGS84坐标系,预留其他坐标系转换接口

10. 附录

附录A:术语表

术语英文说明
俯仰角Pitch/Elevation光轴与水平面之间的夹角,向下为正(约定)
水平偏转角Azimuth/Pan光轴水平投影方向与参考方向(正北)的夹角
视场角FOV (Field of View)摄像头能拍摄到的最大水平/垂直角度范围
焦距Focal Length镜头光学中心到传感器平面的距离
传感器Sensor摄像头感光元件,其尺寸影响视场角
bounding boxBBoxAI模型输出的目标边界框,用(x,y,width,height)表示
三角测量法Triangu[坐标已隐藏]利用已知边长和角度,通过三角函数计算未知距离的方法

附录B:常见摄像头传感器参数参考

摄像头类型传感器尺寸(宽×高,mm)典型焦距范围
1/3" CMOS4.8 × 3.62.8mm - 12mm
1/2.8" CMOS5.14 × 3.892.7mm - 12mm
1/2" CMOS6.4 × 4.82.8mm - 12mm
1/1.8" CMOS7.18 × 5.324mm - 50mm
高点快球(典型)6.17 × 4.556mm - 180mm

注意:实际传感器尺寸需以摄像头设备规格书为准,以上为常见参考值。

附录C:算法验证方案

验证方式说明
已知点验证在摄像头视野中选择已知经[坐标已隐藏]的地面标志物(如路口、建筑物),AI识别后对比计算结果
多点验证在不同距离(50m/100m/200m/500m)选择验证点,统计误差分布
不同角度验证在不同俯仰角(0°~-30°)下验证计算一致性
批量验证报告输出验证报告,包含误差均值、标准差、最大误差等统计指标

文档编制:华中业务中心·开发与技术支持部 编制日期:2026年6月3日 版本历史:

  • V1.0(2026-06-03):初稿,包含算法设计、API对接、数据存储等完整需求