前言
本文件按照 GB/T 1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定起草。
本文件采信中关村视听产业技术创新联盟发布的 T/AI 116.1—2021《信息技术 数字视网膜系统 第1部分:系统结构和通信协议》。
本文件是 GB/T 48349《信息技术 数字视网膜系统》的第1部分。GB/T 48349 已经发布了以下部分:
第1部分:系统结构和通信协议;
第3部分:端子系统;
第4部分:边子系统。
本文件由全国信息技术标准化技术委员会(SAC/TC 28)提出并归口。
本文件起草单位:鹏城实验室、北京大学、清华大学、中国科学院计算技术研究所、华为技术有限公司、中兴通讯股份有限公司、杭州海康威视数字技术股份有限公司、海信集团控股股份有限公司、深圳云天励飞技术有限公司、云从科技集团股份有限公司、杭州博雅鸿图视频技术有限公司、腾讯科技(深圳)有限公司、北京文安智能技术股份有限公司、北京兴云数科技术有限公司、中关村视听产业技术创新联盟。
本文件主要起草人:王耀威、朱文武、纪雯、白鑫贝、周运红、袁锦宇、戴列峰、卢建良、贾霞、任文奇、方家乐、李继伟、温浩、刘常昱、王士宁、肖嵘、纪昌兰、李一鸣、宋君、陈鹏、李潘、王智、刘树军、杨哲铭、贾惠柱、刘海军、赵海英、张伟民、高文。
引言
T/AI 116.1—2021《信息技术 数字视网膜系统 第1部分:系统结构和通信协议》于 2021 年 12 月31 日由中关村视听产业技术创新联盟发布并实施。该标准规定了数字视网膜系统的架构、组成、功能、接口、信息传输流程以及通信协议等内容,旨在引领和规范视频监控在智慧交通、智能制造、智慧家庭等行业的应用发展,满足规模急剧增长的视频大数据有效信息实时汇聚、处理和存储的需求。
GB/T 48349《信息技术 数字视网膜系统》拟由 12 个部分构成。
第1部分:系统结构和通信协议。目的在于确立数字视网膜系统的参考架构、功能要求、通信流程和数据接口等内容。
第2部分:算法模型仓库。目的在于确立算法模型的封装、管理、调度等功能与接口要求,实现对不同算力单元、不同软件框架、不同算法模型、不同计算目标等的可变支持。
第3部分:端子系统。目的在于确立数字视网膜端子系统的基本结构和技术要求。
第4部分:边子系统。目的在于确立数字视网膜边子系统的逻辑架构、技术要求和数据接口。
第5部分:云子系统。目的在于确立数字视网膜云子系统的参考架构、技术要求、数据接口和服务能力。
第6部分:端边云协同。目的在于确立数字视网膜端子系统、边子系统和云子系统之间协同工作的内容、机制和接口,为端、边、云子系统协同工作的实现提供参考准则。
第7部分:测试规范。目的在于确立数字视网膜系统中的算法模型仓库、端子系统、边子系统、云子系统、端边云协同等部分的测试内容和测试方法。
第8部分:系统总体度量及评价体系。目的在于确立数字视网膜系统在建设、验收和使用过程中的系统总体评价准则。
第9部分:存储系统。目的在于确立数字视网膜系统中存储系统设计与部署的基本要求。
第10部分:应用指南。目的在于确立数字视网膜系统在实际部署实施时的基本要求,为数字视网膜系统的典型行业应用提供参考方案。
第11部分:安全与隐私保护。目的在于确立数字视网膜系统在安全、隐私保护等方面的基本要求。
第12部分:嵌入表示的技术要求。目的在于确立数字视网膜系统中嵌入表示的总体框架以及功能、接口等方面的技术要求,为嵌入表示的生成和应用提供参考实现。
本文件的发布机构提请注意,声明符合本文件时,可能涉及 6.2、6.3、6.4、7.1、7.2、7.3、第 8 章和第 9章中如下 6 项与数字视网膜技术相关的专利的使用。专利名称如下:
202011425341.5(PCT/CN2021/087017),一 种 可 伸 缩 视 觉 计 算 系 统 ;202110117722.5,一 种 基 于 数字视网膜系统的通信方法;202110024219.5,一种用于感知系统构建的前端节点优化选择方法;202110022791.8,一种用于大规模视觉计算系统的节点协同选择方法;201910804261.1,一种数字视网膜体系结构及软件架构方法及系统;201910803145.8,一种数字视网膜软件定义摄像机方法及系统。
本文件的发布机构对于该专利的真实性、有效性和范围无任何立场。
该专利持有人已向本文件的发布机构承诺,他愿意同任何申请人在合理且无歧视的条款和条件下,就专利授权许可进行谈判。该专利持有人的声明已在本文件的发布机构备案,相关信息可以通过以下联系方式获得:
联系人:黄铁军(新一代人工智能产业技术创新战略联盟秘书长)
通讯地址:北京大学理科 2 号楼 2641 室
邮政编码:100871
电子邮件:tjhuang@pku.edu.cn
网址:http://www.aitisa.org.cn
请注意除上述专利外,本文件的某些内容仍可能涉及专利。本文件的发布机构不承担识别专利的责任。
信息技术数字视网膜系统
第1部分:系统结构和通信协议
1 范围
本文件规定了数字视网膜系统的架构、组成、功能、信息传输流程、通信协议、接口等内容。
本文件适用于数字视网膜系统的方案设计、系统检测,以及与之相关的设备研发、生产。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 2260—2007 中华人民共和国行政区划代码
GB/T 28181—2022 公共安全视频监控联网系统信息传输、交换、控制技术要求
GA/T 1400.1—2017 公安视频图像信息应用系统 第1部分:通用技术要求
IETF RFC 3261 会话初始协议(SIP:Session Initiation Protocol)
IETF RFC 3550 实时传输协议(RTP:A Transport Protocol for Real⁃Time Applications)
IETF RFC 9110 超文本传输协议:语义(Hypertext Transfer Protocol—HTTP/1.1:Semantics)
3 术语和定义
下列术语和定义适用于本文件。
3 1
数字视网膜系统 digital retina system
具有信息采集、传输、控制、存储、处理、显示等功能,具有统一时空信息、多层次数据表示、多种数据流并行等特性以及可伸缩端边云协同计算架构的视觉大数据感知分析处理系统。
3 2
服务 service
实现一些特定功能的逻辑单元的集合。
3 3
子系统 subsystem
由若干紧密关联的功能单元或服务按照一定的逻辑组合而成、能作为系统一部分的有机整体。
3 4
端子系统 end subsystem
具有数据采集、处理、分析、传输等功能,主要用于场景信息感知的子系统。
3 5
边子系统 edge subsystem
具备多路数据接入、处理、存储及转发等功能,用于在局部范围内,完成资源协同调度和数据协同计 GB/T 4 83 4 9.1—2 026 算分析的子系统。
3 6
云子系统 cloud subsystem
具备系统协同交互和数据汇聚、处理、存储、管理等功能,用于在全局范围内,完成数据的协同计算、分析、挖掘与决策的子系统。
3 7
视频流 video stream
按照一定格式和协议传输的视频数据序列。
3 8
特征流 feature stream
按照一定格式和协议传输的特征数据序列。
3 9
模型流 model stream
按照一定格式和协议传输的算法模型数据序列。
3 1 0
结果流 result stream
按照一定格式和协议传输的结果数据序列。
4 缩略语
下列缩略语适用于本文件。
AI:人工智能(Artificial Intelligence)
AVS:音视频编码标准(Audio Video coding Standard)
BDS:北斗卫星导航系统(BeiDou Navigation Satellite System)
CDVA:紧凑视频分析描述子(Compact Descriptors for Video Analysis)
CDVS:紧凑视觉描述子(Compact Descriptor for Visual Search)
GPS:全球定位系统(Global Positioning System)
HTTP:超文本传输协议(Hypertext Transfer Protocol)
HTTPS:安全的超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer)
ID:身份标识(Identification)
IP:因特网协议(Internet Protocol)
JSON:对象标记语言(JavaScript Object Notation)
JWT:对象标记语言网络令牌(JSON Web Token)
MPEG:动态图像专家组(Moving Picture Experts Group)
NTP:网络时间协议(Network Time Protocol)
OSD:屏幕显示(On⁃Screen Display)
REST:表述性状态转移(Representational State Transfer)
RTMP:实时消息传输协议(Real Time Messaging Protocol)
RTSP:实时流传输协议(Real Time Streaming Protocol)
URI:统一资源标识符(Uniform Resource Identifier)
URL:统一资源定位符(Uniform Resource Locator)
WSS:安全网络套接字(Web Socket Secure)
5 总则
数字视网膜系统宜遵循以下原则:
a) 兼容性原则:能够兼容现有视频终端,灵活定义子系统的功能和交互内容;
b) 开放性原则:采用分层解耦设计方法,系统各个层级能够独立演进;
c) 安全性原则:具有综合性安全防护能力,保障设备或用户接入安全、设备运行安全和信息传输安全,保障信息的真实性、完整性和保密性;
d) 可维护性原则:系统软件、硬件等易于维护和管理,系统排故、部署与升级便于操作;
e) 可扩展性原则:系统架构、软件、接口等易于扩展,支持业务的灵活部署与弹性扩展,能够适应多种场景的应用需求。
6 系统结构
6 1 概述
数字视网膜系统通过新型端边云协同视觉计算架构,实现存储、计算等能力和资源在端、边、云子系统中合理分配,不同子系统之间通过网络互联并相互协作,实现系统的高效运行,提供低时延、大容量、智能化、多层次的服务,满足业务实时性、数据智能化处理、数据协同分析、数据隐私保护等行业需求。
6.2 参考架构
数字视网膜系统参考架构见图 1。图 1 描述了系统的主要构成、子系统中的核心模块、各个子系统之间的连接关系和基本的数据流关系。

数字视网膜系统由端子系统、边子系统、云子系统三部分组成。端子系统主要负责场景信息的采集和分析;边子系统主要负责局部范围内的视频和特征等数据的汇聚、存储和转发,资源调度及协同计算任务;云子系统主要负责全局范围内数据的汇聚、协同计算、分析、挖掘和决策任务。子系统之间的传输内容包括数据流和控制流,其中,数据流主要包括视频流、特征流、模型流、结果流等业务相关信息,控制流主要包括设备控制、配置参数、功能定义等系统运行层面的信息。
下面分别介绍端子系统、边子系统、云子系统内部的模块组成及功能定义。
端子系统主要由终端视频处理单元、终端计算单元、终端控制单元三部分组成。终端视频处理单元主要负责视频数据的采集、处理、编码和传输;终端计算单元主要负责结构化分析算法的运行、特征编码,以及特征流和结果流的传输;终端控制单元主要负责控制流的接收与处理,模型流的下载与更新,以及时间、位置等信息的传输。
边子系统主要由边缘视频服务、边缘计算服务、边缘控制服务和边缘存储服务四部分组成。边缘视频服务主要负责视频流的处理与传输;边缘计算服务主要负责子系统之间的协同计算任务以及特征流和结果流的传输;边缘控制服务主要负责控制指令的转发、算法模型下载与更新,以及子系统之间的协同调度;边缘存储服务主要负责边子系统各类数据的存储与查询。
云子系统主要由云视频服务、云计算服务、云控制服务、云存储服务和云协同交互服务五部分组成。云视频服务主要负责视频流的处理与传输;云计算服务主要负责数据分析处理和模型联合优化;云控制服务主要负责控制指令的下发、算法模型的管理以及系统内的设备管理;云存储服务主要负责云子系统各类数据的存储与检索;云协同交互服务主要负责云子系统与端子系统、边子系统之间的协同、调度、数据分析等。
6.3 技术特征
数字视网膜系统主要包括下列技术特征。
a) 全局统一的时空 ID:
1) 采用统一基准的时间、空间信息及统一编码的设备 ID 作为系统内所传递信息的唯一时空标识;
2) 视频流、特征流、结果流数据中包含设备 ID、空间信息和同步的时间信息;
3) 支持通过卫星授时或网络授时等方法获取统一基准的同步时间信息;
4) 支持通过 BDS/GPS 等方式获取设备的绝对位置信息,支持通过多种方式获取辅助位置信息;
5) 实时上报时间、空间和状态信息。
b) 高效视频编码能力:
1) 支持 AVS1、AVS2、AVS3、H.264、H.265、MPEG⁃2 等视频编码格式中的一种或多种,用于视频转码、存储及传输,编码格式可扩展;
2) 支持视频数据加密、脱敏等隐私保护处理。
c) 高效特征编码能力:
1) 支持特征编码或特征图编码;
2) 支持视频编码和特征编码联合优化,提升压缩效率和压缩质量。
d) 联合优化:
1) 支持多个子系统的数据协同和目标联合优化;
2) 支持隐私保护情况下的数据交互与共享。
e) 模型更新:
1) 支持模型压缩;
2) 支持模型的全量更新和增量更新;
3) 支持模型的动态部署与加载。
f) 注意调节:
1) 支持感兴趣区域的选定与配置;
2) 支持通过多个端子系统之间的协同联动完成对重点区域的综合分析。
g) 功能定义:
1) 支持对算法、模型、参数、输出等的配置;
2) 支持软件升级和扩展;
3) 算法仓库支持异构硬件架构,算法仓调度和管理模块具备算法服务部署、拉取、运行和停止功能。
h) 协同交互:
1) 支持按需调取视频、图像、特征、分析结果数据;
2) 支持视频、特征、分析结果在边子系统或云子系统汇聚、交互,实现协同分析处理和数据挖掘;
3) 支持端子系统、边子系统和云子系统之间数据流和控制流的协同控制。
6.4 系统形态
6 4 .1 导引
数字视网膜系统参考架构中的端、边、云三个子系统可根据实际场景需要进行可伸缩的部署,以适应不同规模的应用。例如,只包含端子系统和边子系统或者只包含端子系统和云子系统的中小规模部署方案,以及包含端、边、云三个子系统的大规模部署方案。同时,端子系统可以不具备计算单元,而由边子系统或云子系统提供计算能力。
6.4 2 端边云形态
数字视网膜系统可由端、边、云三个子系统构成。其中,端子系统完成场景信息的视觉感知,边子系统实现多个子系统的局部协同,云子系统完成全局的数据协同分析和优化,分层次构成新一代视觉大数据感知分析处理系统。系统形态见图 2。

6.4 3 端边形态
数字视网膜系统也可由端子系统和边子系统构成,完成局部区域的场景感知、规划和调度。当端子系统不具备终端计算单元时,可通过边子系统的边缘计算服务,就近为接入的终端提供视觉感知能力,同时边子系统还提供了多个子系统之间的协同计算和数据分析优化服务。系统形态见图 3。

6.4 4 端云形态
数字视网膜系统也可由端子系统和云子系统构成,端子系统一般具备终端计算单元,实现初步智能化功能,通过云子系统完成全局的协同计算和大数据分析功能。系统形态见图 4。

7 系统功能要求
7.1 端子系统
端子系统各个模块的具体功能要求如下。
a) 终端视频处理单元:
1) 应具备视频图像采集功能;
2) 应支持视频图像前处理,如降噪、去雾、白平衡、自动曝光控制等功能;
3) 应支持视频 OSD 叠加/算法结果叠加处理;
4) 应支持视频图像编码压缩,如 AVS1、AVS2、AVS3、H.264、H.265、MPEG⁃2 等格式;
5) 应支持视频编码数据推送;
6) 宜支持视频转码。
b) 终端计算单元:
1) 应支持至少一种算法加载运行,宜支持多种算法同时加载运行;
2) 宜支持结构化分析算法,如检测、分类、图像分割、计数等;
3) 宜支持特征提取、特征编码和特征图编码;
4) 宜支持 CDVS、CDVA 等特征压缩标准;
5) 宜支持模型压缩;
6) 宜支持特征和结果数据输出;
7) 宜支持特征数据流和算法结果流的推送。
c) 终端控制单元:
1) 应支持设备实时状态上报、查询;
2) 应支持设备时间、空间位置信息实时上报;
3) 应支持接收设备配置管理命令(如开关机、重启等);
4) 应支持接收设备控制指令(如调节摄像机的焦距或角度等);
5) 应支持接收边子系统和云子系统下发的软件配置参数,如视频编码格式、分辨率等;
6) 应支持处理边子系统和云子系统下发的各种功能定义和控制指令,完成对自身工作状态和工作参数的控制,完成与边子系统和云子系统的交互;
7) 应支持与边子系统和云子系统的时间同步;
8) 宜支持边子系统和云子系统下发的算法及模型文件更新;
9) 宜支持模型的全量更新和增量更新;
10) 宜支持算法和模型动态部署;
11) 宜支持输出结果配置(视频流、特征数据和分析结果中的一种或多种);
12) 宜支持特征、分析结果与视频的同步机制。
7.2 边子系统
边子系统各个模块的具体功能要求如下。
a) 边缘控制服务:
1) 应支持下发端子系统控制指令、算法模型、功能定义等指令;
2) 应支持转发统一时空 ID、设备状态等信息;
3) 应支持多个子系统之间的协同机制。
b) 边缘视频服务:
1) 应支持处理视频流数据,并将视频流数据送入边缘存储服务中;
2) 应支持视频内容的按需调取操作;
3) 应支持视频解码和传输;
4) 宜支持视频编码和转码;
5) 宜支持视频处理算法。
c) 边缘计算服务:
1) 应支持多个子系统之间的协同交互处理算法;
2) 当端子系统不具备计算能力时,边缘计算服务应同时承担所有计算服务;
3) 应支持隐私保护情况下的数据共享与交互;
4) 宜支持特征数据流和算法结果流的推送或转发。
d) 边缘存储服务:
1) 应支持对结构化和非结构化数据进行存储;
2) 应支持数据查询与调取;
3) 宜支持算法模型仓库。
7.3 云子系统
云子系统各个模块的具体功能要求如下。
a) 云控制服务:
1) 应支持对系统内所有端、边、云子系统的状态查询;
2) 应支持对系统内所有端、边、云子系统的配置管理;
3) 应支持对端子系统或边子系统的功能定义和任务分发;
4) 应支持设备控制、模型更新/切换、功能定义等指令的下发;
5) 应具备与用户交互的能力;
6) 应具备端、边、云子系统之间的安全检测和权限认证机制;
7) 宜具备云子系统之间的交互接口。
b) 云视频服务:
1) 应支持接收和处理视频流信息;
2) 应支持按需调取视频/图像/特征/分析结果数据。
c) 云计算服务:
1) 应支持特征/结果汇聚、结构化分析处理、模型训练和联合优化以及与用户交互相关的辅助计算任务;
2) 应支持隐私保护情况下的数据共享与交互;
3) 云存储服务;
4) 应支持对结构化和非结构化数据进行存储;
5) 应支持数据查询与调取;
6) 应支持算法模型仓库。
d) 云协同交互服务:
1) 应支持数据协同分析和挖掘;
2) 应支持云子系统内部各模块之间以及与其他子系统的协同与交互。
8 通信流程
8.1 一般要求
数字视网膜系统通信流程包括登录鉴权与注销,配置下发,功能定义,模型下发与拉取,特征流推送、结果流推送、视频流推送与拉取,状态上报,控制指令下发,视频、图片、算法结果按需调取。下面详细描述端、边、云子系统与通信相关的功能及对应的通信流程。
数字视网膜系统端子系统的通信功能应符合表 1 的要求。
| 功能 | 具体描述 |
| 支持视频编码数据推送 | 端子系统将视频编码后推送至边子系统或云子系统(见8.6) |
| 支持特征和结果数据输出 | 端子系统依照边子系统或云子系统下发的功能定义指令,完成特征和结果数据的输出(见8.4) |
| 支持特征数据流和算法结果流的推送 | 端子系统依照边子系统或云子系统下发的功能定义指令,将特征流和结果流数据输出至指定地址(见8.6) |
| 支持设备实时状态上报、查询 | 端子系统将运行状态上报给边子系统或云子系统(见8.7) |
| 支持设备时间、空间位置信息实时上报 | 端子系统实时上报时间和空间位置信息给边子系统或云子系统(见8.7) |
| 功能 | 具体描述 |
| 支持接收设备配置管理命令(如开关机、重启等) | 端子系统接收来自边子系统或云子系统的设备配置指令(见8.8) |
| 支持接收设备控制指令(如调节摄像机的焦距或角度等) | 端子系统接收来自边子系统或云子系统的设备控制指令(见8.8) |
| 支持接收边子系统和云子系统下发的软件配置参数,如视频编码格式、分辨率等 | 端子系统接收来自边子系统或云子系统的配置下发指令(见8.3) |
| 支持特征、分析结果与视频的同步机制 | 端子系统传输的视频、特征、结果数据中包含统一的同步信息(见8.6) |
| 支持与边子系统和云子系统的时间同步 | 端、边、云子系统支持通过NTP服务等方式实现时间同步 |
| 支持边子系统和云子系统下发的算法及模型文件更新 | 端子系统接收并处理来自边子系统或云子系统的算法模型更新指令(见8.5) |
| 支持模型的全量更新和增量更新 | 端子系统接收并处理来自边子系统或云子系统的模型全量或增量更新指令(见8.5) |
| 支持算法和模型动态部署 | 端子系统接收并处理来自边子系统或云子系统的算法模型更新指令,实现算法模型的动态部署(见8.5) |
| 支持输出结果配置(视频流、特征数据和分析结果中的一种或多种) | 端子系统接收来自边子系统或云子系统的功能定义指令,按配置要求输出指定的数据流(见8.4) |
| 支持处理边子系统和云子系统下发的各种功能定义和控制指令,完成对自身工作状态和工作参数的控制,完成与边子系统和云子系统的交互 | 端子系统处理来自边子系统或云子系统的功能定义指令或控制指令(见8.3、8.4、8.8) |
| 功能 | 具体描述 |
| 支持下发端子系统控制指令、算法模型、功能定义等指令 | 边子系统下发控制指令、算法模型、功能定义等指令至端子系统(见8.3、8.4、8.5、8.8) |
| 支持转发统一时空ID、设备状态等信息 | 边子系统转发端子系统上报的时空ID、状态等信息至云子系统(见8.7) |
| 支持视频内容的按需调取操作 | 边子系统接收并处理云子系统发起的视频按需调取指令(见8.9) |
| 支持视频传输 | 边子系统支持视频数据的接收和推送(见8.6) |
| 支持隐私保护情况下的数据共享与交互 | 边子系统的所有通信都基于鉴权和加密的基础上(见8.2) |
| 支持特征数据流和算法结果流的推送或转发 | 边子系统将特征流和结果流数据输出至指定地址(见8.6) |
| 支持模型拉取 | 边子系统从云子系统或者端子系统从边子系统拉取算法模型(见8.5) |
| 功能 | 具体描述 |
| 支持对系统内所有端、边、云子系统的状态查询 | 云子系统存储所有子系统的状态信息,并支持状态查询功能(见8.7) |
| 支持对端子系统或边子系统的功能定义和任务分发 | 云子系统向端子系统或边子系统下发功能定义指令(见8.4) |
| 支持设备控制、模型更新/切换、功能定义等指令的下发 | 云子系统下发设备控制、参数配置、模型更新/切换、功能定义等指令(见8.3、8.4、8.5、8.8) |
| 具备端、边、云子系统之间的安全检测和权限认证机制 | 云子系统支持边子系统和端子系统的设备登录与鉴权(见8.2) |
| 支持接收和处理视频流信息 | 云子系统支持视频流的接收和处理(见8.3、8.6) |
| 支持按需调取视频/图像/特征/分析结果数据 | 云子系统支持下发按需调取指令并接收相应的视频、图像、特征、分析结果等数据(见8.9) |
| 支持隐私保护情况下的数据共享与交互 | 云子系统的所有通信都基于鉴权和加密的基础上(见8.2) |
| 支持接收特征数据流和算法结果流 | 云子系统接收来自端子系统或边子系统的特征流和结果流数据(见8.6) |
8.2 登录鉴权与注销
数字视网膜系统数据上传使用 HTTPS 协议,具体内容应符合 IETF RFC 9110 中的相关规定,数据下发使用 WSS 协议,见 9.1.2、9.1.3。
登录鉴权流程见图 5。首先,登录方发起 HTTPS 登录请求,携带登录信息、设备信息(包括设备种类、平台等详细信息),服务方鉴权登录请求并记录相关信息后生成鉴权令牌并返回给登录方,登录方保存鉴权令牌,后续的所有 HTTPS 通信都会带上该鉴权令牌。HTTPS 连接完成后,登录方携带该鉴权令牌信息发起 WSS 连接请求,该 WSS 连接用于后续服务方下发指令。
注销流程与登录流程相似,登录方先通过 HTTPS 发送注销请求,在收到服务方正确返回后,登录方先断开 WSS 连接,然后断开 HTTPS 连接。

8.3 配置下发
配置下发流程包括云子系统下发配置参数至边子系统或端子系统,以及边子系统下发配置参数至端子系统。配置内容可包括特征流/算法结果流输出地址、视频流协议类型、编码类别、视频分辨率、状态上报频率等。
配置下发流程见图 6。

8.4 功能定义
功能定义流程包括云子系统向边子系统或端子系统,以及边子系统向端子系统下发功能定义指令,可定义端子系统或边子系统的特征流、结果流、视频流的推送与否,加载运行的算法模型等。
功能定义流程见图 7。

8.5 模型下发与拉取
模型下发与拉取包括以下情形。
a) 模型下发流程支持三种不同的情况:
1) 云子系统向边子系统下发算法模型;
2) 云子系统向端子系统下发算法模型;
3) 边子系统向端子系统下发算法模型。
模型下发流程见图 8。

b) 模型拉取流程支持三种不同的情况:
1) 边子系统向云子系统主动拉取算法模型;
2) 端子系统向云子系统主动拉取算法模型;
3) 端子系统向边子系统主动拉取算法模型。
模型拉取流程见图 9。

8.6 特征流/结果流推送、视频流推送与拉取
支持特征流、视频流、结果流数据从端子系统往边子系统的推送,同时也支持相关数据从端子系统往云子系统的推送,以及边子系统往云子系统的推送。支持云子系统从边子系统或端子系统实时拉取视频流。
特征流推送流程见图 10。


视频流的推送与拉取流程应按照 GB/T 28181—2022 中 9.2 实时视音频点播的规定执行,其中,控制协议应符合 IETF RFC 3261 中的相关规定,媒体传输应符合 IETF RFC 3550 中的相关规定。
8.7 状态上报
状态上报是指端子系统上报运行状态、时间、空间位置等状态信息至边子系统或云子系统,以及边子系统上报状态信息至云子系统。状态上报流程见图 12。

8.8 控制指令下发
支持云子系统下发控制指令至边子系统或端子系统;支持边子系统下发控制指令至端子系统。控制指令包括关机、重启、调节摄像机的焦距和角度等。控制指令下发流程见图 13。

8.9 视频、图片、算法结果按需调取
支持云子系统从边子系统按需调取视频、图片、算法结果等数据。视频、图片、算法结果按需调取流程见图 14。

9 接口
9.1 通用要求
9.1.1 ID 统一编码规则
系统中涉及的平台、设备、用户等编码规则应符合 GB/T 28181—2022 中 E.1 的规定。唯一 ID 号由中心编码(8 位)、行业编码(2 位)、类型编码(3 位)、网络标识(1 位)和序号(6 位),5 个码段共 20 位十进制数字字符构成,编码规则应符合表 4 的规定。
| 码段 | 码位 | 含义 | 取值说明 |
| 中心编码 | 1、2 | 省级编号 | 由监控中心所在地的行政区划代码确定,符合GB/T 2260-2007的要求 |
| 3、4 | 市级编号 | ||
| 5、6 | 区级编号 | ||
| 7、8 | 基层接入单位编号 | ||
| 行业编码 | 9、10 | 行业编码 | 行业编码对照表符合GB/T 28181-2022中E.2的要求 |
| 类型编码 | 11、12、13 | 设备类型 | 应符合表5的规定 |
| 网络标识 | 14 | 网络标识编码 | 0、1为公安视频传输网,2为行业专网,3为政法信息网,4为公安移动信息网,5为公安信息网,6为电子政务外网,7为互联网等公共网络,8为专线,9为预留 |
| 序号 | 15~20 | 设备、用户序号 |
| 取值 | 说明 |
| 199 | 端子系统设备编码,从GB/T 28181-2022中E.1扩展的前端外围设备类型中选取 |
| 212 | 边子系统设备编码,从GB/T 28181-2022中E.1扩展的平台设备类型中选取 |
| 213 | 云子系统设备编码,从GB/T 28181-2022中E.1扩展的平台设备类型中选取 |
9.1.2 上报数据格式
上报数据内容包括设备登录、注销、状态、视频流、特征流、结果流等。
数据上报接口除视频流采用符合 GB/T 28181—2022 要求的协议外,所有控制类接口和数据类接口采用 RESTful 接口的 HTTPS 协议。图 15 给出了 HTTPS 协议格式。
| 请求方法 | 空格 | URL | 空格 | 协议版本 | 回车符 | 换行符 | |
| 头部字段名 | : | 值 | 回车符 | 换行符 | |||
| ...... | |||||||
| 头部字段名 | : | 值 | 回车符 | 换行符 | |||
| 回车符 | 换行符 | ||||||
| 请求数据 | |||||||

HTTPS 数据传输采用长连接方式,实现机制符合 IETF RFC 9110,使用 HTTP 头域“Connection:Keep⁃Alive”表示长连接,使用头域“Connection:close”表示长连接中的最后一个事务,使用头域“Contenttype:application/json”表示请求数据使用 JSON 格式封装,使用头域 Authorization 表示鉴权令牌认证。
REST 架构协议模型概述、接口访问形式、状态码、数据上报返回状态码、服务数据对象资源 URI 等按照附录 A 执行。
数据上报接口应符合以下要求:
a) 支持分步上传:将图片或视频片段结构化信息及二进制数据上传,返回存储对应的 URL 后,再上传图片或视频片段中算法模型分析出的人、车、物等结构化信息;
b) 支持断点续传:上报图片、视频片段、模型流时,如果传输异常中断,允许进行断点续传以确保数据传输的完整性,如基于 HTTP Range Requests 机制进行断点续传(见 IETF RFC 9110,Sec tion 14“Range Requests”);
c) 上传图片、视频片段时,如果媒体流存储由多个分支节点组成,支持边、云子系统动态协商获取分支节点 IP 地址。
9.1.3 下发数据格式
下发数据为从云子系统或边子系统下发的控制指令,包括配置参数、功能定义、算法模型、视频查询等。除视频流设备控制指令外,控制下发接口都使用基于 WSS 协议的 JSON 数据格式来通信,表 6 给出了接口封装格式。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | |
| 指令序号 | CommandIdx | number | 可选 | - | 区分交互指令的序号,保证幂等性 |
| 设备ID | DeviceID | string | 可选 | 20字节 | 识别下发指令的接收设备 |
| 指令数据 | MessageBody | JSON数据包 | 必选 | 指令数据详细字段 |
详细数据格式样例见图 17。
{
"CommandType" : "config_update",
"CommandIdx" : 1,
"DeviceID" : "44030500081407000001",
"MessageBody" : {
"IPAddr" : "14.215.177.39",
"Longitude" : "113.938422",
"Latitude" : "22.574797",
"VideoStreamAddr" : "218.17.115.198",
"FeatureStreamAddr" : "218.17.115.198",
"VideoStreamProtocol" : "rtsp",
"HeartBeatInterval" : 10,
"Width" : "1920",
"Height" : "1080",
"VideoEncodingFormat" : "h264"
}
}
9.1.4 数据安全
传输数据应采用 SSL/TLS 协议对数据进行加密。
9.1.5 接口安全认证
除视频流传输接口外,所有接口宜使用 JWT 协议进行安全认证,签名算法使用 HMAC SHA256。鉴权令牌的 HEADER 字符串为:JWT。鉴权令牌根据业务的不同,设置不同的过期时间来达到相应的安全等级。
9.2 数据上报接口
9.2.1 登录接口
登录接口应符合表 7 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /System/Login | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 用户名 | UserName | string | 必选 | 小于32字节 | - |
| 密码 | Password | string | 必选 | 小于16字节 | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备厂商 | Vendor | string | 必选 | 小于32字节 | - |
| 设备序列号 | DeviceSN | string | 可选 | 小于40字节 | - |
| 设备类型 | DeviceType | string | 可选 | 小于32字节 | - |
| 设备名称 | DeviceName | string | 可选 | 小于40字节 | - |
| 操作系统名称 | OSName | string | 必选 | 小于32字节 | - |
| 操作系统版本 | OSVersion | string | 必选 | 小于32字节 | - |
| 软件版本 | SoftwareVersion | string | 可选 | 小于32字节 | - |
| 设备CPU信息 | DeviceCPU | string | 可选 | 小于128字节 | - |
| 设备GPU信息 | DeviceGPU | string | 可选 | 小于128字节 | - |
| 设备内存信息 | DeviceRAM | string | 可选 | 小于128字节 | - |
| 设备硬盘信息 | DeviceDisk | string | 可选 | 小于128字节 | - |
| IP地址 | IPAddr | string | 可选 | 小于40字节 | IPv4时小于16字节,IPv6时小于40字节 |
| 端口号 | Port | string | 可选 | 小于5字节 | - |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 安装位置 | Location | string | 可选 | 小于128字节 | 具体到设备位置或街道门牌号,由(乡镇街道)+(街路巷)+(门楼牌号)+(门楼详细地址)构成 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 鉴权令牌值 | Token | string | 必选 | 64字节 | 后续通信HTTP头部将带上该值 |
9.2.2 注销接口
注销接口应符合表 10 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /System/Logout |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.3 保活接口
保活接口应符合表 13 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /System/Keepalive |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | String | 必选 | 20字节 | 注册设备唯一编码 |
保活接口返回值说明应符合表 15 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | String | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.4 设备状态上报接口
设备状态上报分为端子系统设备状态上报和边子系统设备状态上报。
端子系统设备状态上报接口应符合表 16 的规定。
| HTTP方法 | URI | 消息体 |
| PATCH | /System/DeviceStatus/ |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 设备状态 | DeviceStatus | string | 必选 | 1字节 | 0:正常,1:异常,2以上为扩展状态 |
| 是否转发 | Forward | string | 必选 | 1字节 | 0:不转发,1:转发。若由边子系统转发至云子系统,边子系统转发的URI格式为/System/DeviceStatus/ |
| 当前时间 | CurrentTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
边子系统设备状态上报接口、消息体参数、返回值说明分别应符合表 19、表 20、表 21 的规定。
| HTTP方法 | URI | 消息体 |
| PATCH | /System/EdgeStatus |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 设备状态 | DeviceStatus | string | 必选 | 1字节 | 0:正常,1:异常,2以上为扩展状态 |
| 当前时间 | CurrentTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.5 算法模型查询接口
算法模型查询接口应符合表 22 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /ModelQuery | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 设备类型 | DeviceType | string | 必选 | 小于32字节 | - |
| 算法模型过滤条件 | AlgModelFilter | JSON数据包 | 必选 | - | - |
| 算法类型 | +AlgType | string | 可选 | 小于128字节 | - |
| 算法关键字 | +AlgKeyword | string | 可选 | 小于128字节 | - |
| 算力要求 | +AlgComputingPower | string | 可选 | 小于32字节 | - |
| 算法内存要求 | +AlgVRAM | string | 可选 | 小于32字节 | - |
| 算法模型大小 | +AlgModelSize | string | 可选 | 小于32字节 | - |
| 算法上传时间区段--起始时间 | +StartTime | string | 可选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 算法上传时间区段--结束时间 | +EndTime | string | 可选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 算法模型列表 | AlgModelList | JSON数据包 | 必选 | - | 详细信息数组 |
| 算法模型1 | +AlgModel1 | - | 可选 | - | 具体算法模型信息应符合表25的规定 |
| 算法模型2 | +AlgModel2 | - | 可选 | - | 具体算法模型信息应符合表25的规定 |
| …… | …… | …… | …… | …… | …… |
| 算法模型N | +AlgModelN | - | 可选 | - | 具体算法模型信息应符合表25的规定 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 算法ID | AlgID | number | 必选 | - | - |
| 算法类型 | AlgType | string | 必选 | 小于128字节 | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 算法描述 | AlgDesc | string | 可选 | 小于1024字节 | - |
| 算法版本 | AlgVersion | string | 必选 | 小于20字节 | - |
| 算法处理帧率 | AlgRate | number | 必选 | - | - |
| 算力要求 | AlgComputingPower | string | 可选 | 小于32字节 | - |
| 算法内存要求 | AlgVRAM | string | 可选 | 小于32字节 | - |
| 算法文件大小 | AlgSize | string | 必选 | 小于32字节 | - |
| 算法文件名称 | AlgFileName | string | 必选 | 小于64字节 | - |
| 算法更新时间 | AlgUpdateTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 算法文件地址 | AlgFileURL | string | 必选 | 小于256字节 | - |
| 算法主执行文件 | AlgExecFile | string | 必选 | 小于128字节 | - |
| 模型列表 | ModelList | JSON数据包 | 必选 | - | 〈Model〉详细信息数组 |
| 模型1 | +Model1 | 〈Model〉 | 可选 | - | 具体模型信息应符合表26的规定 |
| 模型2 | +Model2 | 〈Model〉 | 可选 | - | 具体模型信息应符合表26的规定 |
| …… | …… | …… | …… | …… | …… |
| 模型N | +ModelN | 〈Model〉 | 可选 | - | 具体模型信息应符合表26的规定 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 模型ID | ModelID | number | 必选 | - | - |
| 模型描述 | ModelDesc | string | 可选 | 小于1024字节 | - |
| 模型文件名 | ModelFileName | string | 必选 | 小于128字节 | - |
| 模型文件大小 | ModelSize | string | 必选 | 小于32字节 | - |
| 模型版本 | ModelVersion | string | 必选 | 小于20字节 | - |
| 模型添加时间 | AddTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 模型URL | ModelURL | string | 必选 | 小于256字节 | - |
| 模型处理帧率 | ModelRate | number | 可选 | - | - |
| 模型更新类别 | UpdateType | string | 可选 | 小于32字节 | |
| 模型压缩类别 | CompressType | string | 可选 | 小于32字节 | 支持不同的模型压缩格式 |
9.2.6 结构化数据上报接口
9.2.6.1 图片信息
结构化图片信息上报接口应符合表 27 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /ImageInfo | 或 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 图片ID | ImageID | string | 必选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定 |
| 图片URL | ImageURL | string | 必选 | 小于256字节 | |
| 图像文件格式 | FileFormat | string | 必选 | 小于8字节 | |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 宽度 | Width | number | 必选 | 水平像素值 | |
| 高度 | Height | number | 必选 | 垂直像素值 | |
| 拍摄时间 | CreateTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 入库时间 | EntryTime | string | 可选 | 小于24字节 | 服务自动生成,创建报文中不需要该字段按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 图像处理标志 | ImageProcFlag | string | 可选 | 1字节 | 0:图像未处理;1:图像经过处理 |
| 文件大小 | FileSize | number | 可选 | 图像文件大小,单位为字节 | |
| 时间戳 | Ts | number | 必选 | 用于与算法结果同步 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.6.2 视频片段信息
结构化视频片段信息上报接口应符合表 30 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /VideoSliceInfo | 或 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 原始视频ID | OriginVideoID | string | 可选 | 41字节 | 摘要视频对应的原始视频ID,摘要浓缩视频"原始视频ID/原始视频URL"两项必选其一 |
| 原始视频URL | OriginVideoURL | string | 可选 | 小于256字节 | |
| 视频ID | VideoID | string | 必选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定 |
| 视频URL | VideoURL | string | 必选 | 小于256字节 | |
| 缩略图URL | ThumbnailURL | string | 可选 | 小于256字节 | |
| 视频文件格式 | FileFormat | string | 必选 | 小于10字节 | |
| 视频编码格式 | VideoEncodingFormat | string | 必选 | 小于10字节 | |
| 音频标志 | AudioFlag | number | 必选 | 0:无音频,1:含音频 | |
| 音频编码格式 | AudioEncodingFormat | string | 可选 | 小于10字节 | |
| 题名 | Title | string | 必选 | 小于128字节 | 视频资料名称的描述 |
| 内容描述 | ContentDescription | string | 必选 | 小于1024字节 | 对视频内容的简要描述 |
| 拍摄地点经度 | ShotPlaceLongitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 拍摄地点纬度 | ShotPlacetLatitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 视频长度 | VideoLen | number | 必选 | 单位为秒(s) | |
| 视频开始时间 | BeginTime | string | 必选 | 小于24字节 | 视频标识开始时间按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 视频结束时间 | EndTime | string | 必选 | 小于24字节 | 视频标识结束时间按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 时间误差 | TimeErr | number | 可选 | 视频标识时间减去实际北京时间的值,单位为秒(s) | |
| 宽度 | Width | number | 必选 | 水平像素值 | |
| 高度 | Height | number | 必选 | 垂直像素值 | |
| 入库时间 | EntryTime | string | 可选 | 小于24字节 | 视图库自动生成,创建报文中不需要该字段按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 文件大小 | FileSize | number | 必选 | 视频文件大小,单位为字节 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.6.3 特征信息
结构化特征信息上报接口应符合表 33 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /FeatureInfo | 或 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 算法版本 | AlgVersion | string | 必选 | 小于20字节 | - |
| 算法ID | AlgID | number | 必选 | - | - |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 左上角X坐标 | LeftTopX | number | 可选 | - | - |
| 左上角Y坐标 | LeftTopY | number | 可选 | - | - |
| 右下角X坐标 | RightBtmX | number | 可选 | - | - |
| 右下角Y坐标 | RightBtmY | number | 可选 | - | - |
| 时间戳 | Ts | number | 必选 | - | 用于和视频、图片同步 |
| 特征ID | FeatureID | string | 可选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定,对其中的子类型编码码段的定义进行扩展,04:特征 |
| 特征URL | FeatureURL | string | 可选 | 小于256字节 | 特征URL和特征数据两者必选其一 |
| 特征数据 | FeatureData | string | 可选 | - | Base64编码二进制数据 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.6.4 算法结果信息
结构化算法结果信息上报接口应符合表 36 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /ResultInfo | 或 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 算法ID | AlgID | number | 必选 | - | - |
| 算法版本 | AlgVersion | string | 必选 | 小于20字节 | - |
| 算法结果类型 | Type | number | 必选 | 0:人脸,1:人体,2:车辆,3:物品,4:场景;类型支持扩展 | |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 时间戳 | Ts | number | 必选 | 用于和视频、图片同步 | |
| 算法结果数据 | ResultData | JSON数据包 | 必选 | 按不同算法结果类型上报不同的结构化结果数据。例如,人脸信息、人体信息、车辆信息、物品信息、场景信息等算法结果,具体数据字段宜参考附录B中表B.1~表B.6 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.7 非结构化数据上报接口
9.2.7.1 图片数据
非结构化图片数据上报接口应符合表 39 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /Images/Data | Base64编码二进制流 |
非结构化图片数据上报接口返回值说明应符合表 40 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 资源URL | URL | string | 必选 | 小于256字节 | 所存图片的URL |
| 图片ID | ImageID | string | 必选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定 |
9.2.7.2 视频流数据
视频流的上报应符合 GB/T 28181—2022 中的要求。
9.2.7.3 视频片段数据
非结构化视频片段数据上报接口应符合表 41 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /VideoSlices/Data | VData |
非结构化视频片段数据上报接口返回值说明应符合表 42 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 资源URL | URL | string | 必选 | 小于256字节 | 所存视频的URL |
| 视频ID | VideoID | string | 必选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定 |
9.2.7.4 特征数据
非结构化特征数据上报接口应符合表 43 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /Feature/Data | Base64编码二进制流 |
非结构化特征数据上报接口返回值说明应符合表 44 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 资源URL | URL | string | 必选 | 小于256字节 | 所存特征数据的URL |
| 特征ID | FeatureID | string | 必选 | 41字节 | 应符合GA/T 1400.1-2017中7.2.2的规定,对其中的子类型编码码段的定义进行扩展,04:特征 |
9.2.8 数据打包上报接口
9.2.8.1 图片及结构化信息
图片及结构化信息打包上报接口应符合表 45 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /Photos | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 图片基本信息 | ImageInfo | JSON数据包 | 必选 | - | 图片自身结构化信息,具体数据字段见Error! Reference source not found. |
| 算法结果数据 | ResultData | JSON数据包 | 可选 | - | 图片关联的人、车、物品、场景等结构化信息;具体数据字段宜参考表B.1~表B.6 |
| 图片数据 | Data | string | 必选 | - | Base64编码的图片二进制数据 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.8.2 视频片段及结构化信息
视频片段及结构化信息打包上报接口应符合表 48 的规定。
| HTTP方法 | URI | 消息体 |
| POST | /VSlices | 或 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 视频片段基本信息 | VideoSliceInfo | JSON数据包 | 可选 | - | 视频片段自身结构化信息,具体数据字段见Er⁃ror! Reference source not found. |
| 算法结果数据 | ResultData | JSON数据包 | 可选 | - | 视频关联的人、车、物品、场景等结构化信息;具体数据字段宜参考表B.1~表B.6 |
| 视频片段数据 | Data | string | 必选 | - | Base64编码的视频片段二进制数据 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.2.9 数据上报扩展接口
端子系统和边子系统均具备数据上报扩展接口。数据上报扩展接口应符合表 51 的规定。
| HTTP方法 | URI | 消息体 |
| PATCH | /System/ExtendData | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | 注册设备唯一编码 |
| 当前时间 | CurrentTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 扩展信息 | ExtendInfo | JSON数据包 | 必选 | - | - |
| 扩展字段1 | +ExtendedField1 | 自定义 | 可选 | - | - |
| 扩展字段2 | +ExtendedField2 | 自定义 | 可选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| …… | …… | …… | …… | …… | …… |
| 扩展字段N | +ExtendedFieldN | 自定义 | 可选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3 控制下发接口
9.3.1 设备基础配置参数下发接口
由云子系统或者边子系统下发设备基础配置参数。设备基础配置参数下发接口应符合表 54 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"config_update" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 设备IP地址 | +IPAddr | string | 可选 | 小于40字节 | IPv4时小于16字节,IPv6时小于40字节 |
| 经度 | +Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | +Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
| 视频流地址 | +VideoStream_Addr | string | 可选 | 小于256字节 | - |
| 特征流地址 | +FeatureStreamAddr | string | 可选 | 小于256字节 | - |
| 视频流协议类型 | +VideoStreamProtocol | string | 可选 | 小于8字节 | 支持RTSP、RTMP等 |
| 心跳包间隔 | +HeartBeatInterval | number | 必选 | - | - |
| 视频宽度 | +Width | number | 可选 | - | 水平像素值 |
| 视频高度 | +Height | number | 可选 | - | 垂直像素值 |
| 视频编码格式 | +VideoEncodingFormat | string | 可选 | 小于10字节 | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"config_update" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3.2 功能定义下发接口
功能定义接口主要用于定义设备上同时加载运行的多个具体的算法模型,以及是否输出视频流、特征流、结果流等配置。
功能定义详细接口参数应符合表 56 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"func_define" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 配置序号 | +ConfigID | number | 必选 | - | - |
| 是否输出视频流 | +OutputVideo | string | 必选 | 1字节 | - |
| 是否输出特征流 | +OutputFeature | string | 必选 | 1字节 | - |
| 是否输出算法结果 | +OutputResult | string | 必选 | 1字节 | - |
| 算法实例 | +Alg | JSON数据包 | 必选 | - | - |
| 算法ID | ++AlgID | number | 必选 | - | - |
| 算法描述 | ++AlgDesc | string | 必选 | 小于1024字节 | - |
| 算法版本 | ++AlgVersion | string | 必选 | 小于20字节 | - |
| 算法文件名称 | ++AlgFileName | string | 必选 | 小于64字节 | - |
| 算法状态 | ++AlgState | string | 必选 | 8字节 | 开启/关闭/删除 |
| 算法过期时间 | ++AlgExpireTime | string | 必选 | 小于24字节 | 按照格式":YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 算法处理帧率 | ++AlgRate | number | 必选 | - | - |
| 算法是否输出特征流 | ++AlgOutputFeature | string | 必选 | 1字节 | - |
| 算法是否输出结果信息 | ++AlgOutputResult | string | 必选 | 1字节 | - |
| 算法文件地址 | ++AlgFileURL | string | 必选 | 小于256字节 | - |
| 算法主执行文件 | ++AlgExecFile | string | 必选 | 小于128字节 | - |
| 算法模型 | ++AlgModels | JSON数据包 | 必选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 模型ID | +++ModelID | number | 必选 | - | - |
| 模型描述 | +++ModelDesc | string | 必选 | 小于1024字节 | - |
| 模型文件名 | +++ModelFileName | string | 必选 | 小于128字节 | - |
| 模型版本 | +++ModelVersion | string | 必选 | 小于20字节 | - |
| 模型添加时间 | +++AddTime | string | 必选 | 小于24字节 | 按照格式":YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 模型URL | +++ModelURL | string | 必选 | 小于256字节 | - |
| 模型更新类别 | +++UpdateType | string | 必选 | 小于32字节 | - |
| 模型压缩类别 | +++CompressType | string | 必选 | 小于32字节 | 支持不同的模型压缩格式 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"func_define" |
| 指令序号 | CommandIdx | number | 可选 | 下发的指令序号 | |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3.3 设备算法模型下发接口
设备算法模型配置接口参数应符合表 58 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"algorithm_update" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 配置序号 | +ConfigID | number | 必选 | - | - |
| 是否输出特征流 | +OutputFeature | string | 必选 | 1字节 | 支持输出结果配置 |
| 是否输出算法结果 | +OutputResult | string | 必选 | 1字节 | 支持输出结果配置 |
| 算法实例 | +Alg | JSON数据包 | 必选 | - | - |
| 算法ID | ++AlgID | number | 必选 | - | - |
| 算法描述 | ++AlgDesc | string | 必选 | 小于1024字节 | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 算法文件名称 | ++AlgFileName | string | 必选 | 小于64字节 | - |
| 算法更新时间 | ++UpdateTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 算法处理帧率 | ++AlgRate | number | 必选 | - | - |
| 算法文件地址 | ++AlgFileURL | string | 必选 | 小于256字节 | - |
| 算法主执行文件 | ++AlgExecFile | string | 必选 | 小于128字节 | - |
| 算法模型 | ++AlgModels | JSON数据包 | 必选 | - | - |
| 模型ID | +++ModelID | number | 必选 | - | - |
| 模型描述 | +++ModelDesc | string | 必选 | 小于1024字节 | - |
| 模型文件名 | +++ModelFileName | string | 必选 | 小于128字节 | - |
| 模型版本 | +++ModelVersion | string | 必选 | 小于20字节 | - |
| 模型添加时间 | +++AddTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 模型URL | +++ModelURL | string | 必选 | 小于256字节 | - |
| 模型更新类别 | +++UpdateType | string | 必选 | 小于32字节 | - |
| 模型压缩类别 | +++CompressType | string | 必选 | 小于32字节 | 支持不同的模型压缩格式 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"algorithm_update" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3.4 视频查询接口
该接口对应的系统技术要求为:支持视频查询,支持按需调取视频。
视频查询接口参数应符合表 60 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"video_query" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | +DeviceID | string | 可选 | 20字节 | 以设备ID作为条件进行查询 |
| 查询经度最大值 | +LongitudeMax | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的视频,经度格式为n10,6;精确到小数点后6位 |
| 查询经度最小值 | +LongitudeMin | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的视频,经度格式为n10,6;精确到小数点后6位 |
| 查询纬度最大值 | +LatitudeMax | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的视频,纬度格式为n10,6;精确到小数点后6位 |
| 查询纬度最小值 | +LatitudeMin | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的视频,纬度格式为n10,6;精确到小数点后6位 |
| 开始时间 | +StartTime | string | 必选 | 小于24字节 | 以开始时间为条件进行查询,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 结束时间 | +EndTime | string | 必选 | 小于24字节 | 以结束时间为条件进行查询,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"video_query" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 视频信息列表 | VideoInfoList | JSON数据包 | 必选 | - | 详细信息数组 |
| 视频信息1 | +VideoInfo1 | 可选 | - | 具体视频信息见Error! Reference source not found. | |
| 视频信息2 | +VideoInfo2 | 可选 | - | 具体视频信息见Error! Reference source not found. | |
| …… | …… | …… | …… | …… | …… |
| 视频信息N | +VideoInfoN | 可选 | - | 具体视频信息见Error! Reference source not found. |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 视频帧率 | VideoRate | number | 可选 | - | - |
| 视频编码格式 | VideoEncodingType | string | 可选 | 小于10字节 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 视频地址 | VideoURL | string | 必选 | 小于256字节 | 视频URL |
| 经度 | Longitude | string | 可选 | 小于16字节 | 视频拍摄地点经度,格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 视频拍摄地点纬度,格式为n10,6;精确到小数点后6位 |
| 开始时间 | StartTime | string | 必选 | 小于24字节 | 视频拍摄开始时间,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 结束时间 | EndTime | string | 必选 | 小于24字节 | 视频拍摄结束时间,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
9.3.5 图片查询接口
该接口对应的系统技术要求为:支持图片查询,支持按需调取图片。
图片查询接口参数应符合表 63 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"image_query" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 设备ID | +DeviceID | string | 可选 | 20字节 | 以设备ID作为条件查询 |
| 查询经度最大值 | +LongitudeMax | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的图片。经度格式为n10,6;精确到小数点后6位 |
| 查询经度最小值 | +LongitudeMin | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的图片。经度格式为n10,6;精确到小数点后6位 |
| 查询纬度最大值 | +LatitudeMax | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的图片。纬度格式为n10,6;精确到小数点后6位 |
| 查询纬度最小值 | +LatitudeMin | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的图片。纬度格式为n10,6;精确到小数点后6位 |
| 开始时间 | +StartTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 结束时间 | +EndTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"image_query" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 图片信息列表 | ImageInfoList | JSON数据包 | 必选 | - | 详细信息数组 |
| 图片信息1 | +ImageInfo1 | - | 可选 | - | 具体图片信息见Error! Reference source not found. |
| 图片信息2 | +ImageInfo2 | - | 可选 | - | 具体图片信息见Error! Reference source not found. |
| …… | …… | …… | …… | …… | …… |
| 图片信息N | +ImageInfoN | - | 可选 | - | 具体图片信息见Error! Reference source not found. |
9.3.6 算法结果查询接口
该接口对应的系统技术要求为:支持算法结果查询,支持按需调取算法结果。
算法结果查询接口参数应符合表 65 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"result_query" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 算法ID | +AlgID | number | 可选 | - | - |
| 算法版本 | +AlgVersion | string | 可选 | 小于20字节 | - |
| 算法结果类型 | +Type | number | 可选 | - | 0:人脸,1:人体,2:车辆,3:物品,4:场景;类型支持扩展 |
| 设备ID | +DeviceID | string | 可选 | 20字节 | 以设备ID作为条件进行查询 |
| 查询经度最大值 | +LongitudeMax | string | 可选 | 小于16字节 | 以经度范围条件进行查询,经度格式为n10,6;精确到小数点后6位 |
| 查询经度最小值 | +LongitudeMin | string | 可选 | 小于16字节 | 以经度范围条件进行查询,经度格式为n10,6;精确到小数点后6位 |
| 查询纬度最大值 | +LatitudeMax | string | 可选 | 小于16字节 | 以纬度范围条件进行查询,纬度格式为n10,6;精确到小数点后6位 |
| 查询纬度最小值 | +LatitudeMin | string | 可选 | 小于16字节 | 以纬度范围条件进行查询,纬度格式为n10,6;精确到小数点后6位 |
| 开始时间 | +StartTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 结束时间 | +EndTime | string | 必选 | 小于24字节 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
返回值说明应符合表 66 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"result_query" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 算法结果信息列表 | ResultInfoList | JSON数据包 | 必选 | - | 详细信息数组 |
| 算法结果信息1 | +ResultInfo1 | - | 可选 | - | 具体算法结果信息应符合表37的规定 |
| 算法结果信息2 | +ResultInfo2 | - | 可选 | - | 具体算法结果信息应符合表37的规定 |
| …… | …… | …… | …… | …… | …… |
| 算法结果信息N | +ResultInfoN | - | 可选 | - | 具体算法结果信息应符合表37的规定 |
9.3.7 设备状态查询接口
设备状态查询接口及返回值说明应符合表 67、表 68 和表 69 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"status_query" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 设备ID | +DeviceID | string | 可选 | 20字节 | 以设备ID作为条件进行查询 |
| 查询经度最大值 | +LongitudeMax | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的设备状态,经度格式为n10,6;精确到小数点后6位 |
| 查询经度最小值 | +LongitudeMin | string | 可选 | 小于16字节 | 查询介于经度最小值、最大值之间的设备状态,经度格式为n10,6;精确到小数点后6位 |
| 查询纬度最大值 | +LatitudeMax | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的设备状态,纬度格式为n10,6;精确到小数点后6位 |
| 查询纬度最小值 | +LatitudeMin | string | 可选 | 小于16字节 | 查询介于纬度最小值、最大值之间的设备状态,纬度格式为n10,6;精确到小数点后6位 |
| 设备状态 | +DeviceStatus | string | 可选 | 1字节 | 0:正常,1:异常,2以上为扩展状态 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"status_query" |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 设备状态信息列表 | DeviceStatusList | JSON数据包 | 必选 | - | 详细信息数组 |
| 设备状态信息1 | +DeviceStatus1 | - | 可选 | - | 设备状态信息见Error! Reference source not found. |
| 设备状态信息2 | +DeviceStatus2 | - | 可选 | - | 设备状态信息见Error! Reference source not found. |
| …… | …… | …… | …… | …… | …… |
| 设备状态信息N | +DeviceStatusN | - | 可选 | - | 设备状态信息见Error! Reference source not found. |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备状态 | DeviceStatus | string | 必选 | 1字节 | 0:正常,1:异常,2以上为扩展状态 |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 经度 | Longitude | string | 可选 | 小于16字节 | 经度格式为n10,6;精确到小数点后6位 |
| 纬度 | Latitude | string | 可选 | 小于16字节 | 纬度格式为n10,6;精确到小数点后6位 |
9.3.8 设备重启下发接口
设备重启下发接口字段应符合表 70 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"dev_reboot" |
| 指令序号 | CommandIdx | number | 可选 | ||
| 设备ID | DeviceID | string | 必选 | 20字节 | |
| 指令数据 | MessageBody | JSON数据包 | 必选 | ||
| 重启延时时间 | +Delay | number | 必选 | 单位为秒(s),设备延时Delay时长后重启设备 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"dev_reboot" |
| 指令序号 | CommandIdx | number | 可选 | 下发的指令序号 | |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3.9 设备关机下发接口
设备关机下发接口应符合表 72 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"dev_shutdown" |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 关机延时时间 | +Delay | number | 必选 | - | 单位为秒(s),设备延时Delay时长后自动关闭 |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 值为"dev_shutdown" |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
9.3.1 0 设备控制指令下发接口
设备控制指令下发接口(调节摄像机的焦距和角度等)应按照 GB/T 28181—2022 中 A.2.3.1 的规定。
9.3.11 可扩展指令下发接口
可扩展指令下发接口参数应符合表 74 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 用户自定义指令类型 |
| 指令序号 | CommandIdx | number | 可选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 设备ID | DeviceID | string | 必选 | 20字节 | - |
| 指令数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 指令参数1 | +CommandArg1 | 自定义 | 可选 | - | - |
| 指令参数2 | +CommandArg2 | 自定义 | 可选 | - | - |
| …… | …… | …… | …… | …… | …… |
| 指令参数N | +CommandArgN | 自定义 | 可选 | - | - |
| 名称 | 标识符 | 类型 | 选择状态 | 长度 | 备注 |
| 指令类型 | CommandType | string | 必选 | 小于20字节 | 用户自定义指令类型 |
| 指令序号 | CommandIdx | number | 可选 | - | 下发的指令序号 |
| 状态码 | StatusCode | string | 必选 | 1字节 | 返回码:0为成功,1为失败 |
| 回复数据 | MessageBody | JSON数据包 | 必选 | - | - |
| 回复参数1 | +ResponseArg1 | 自定义 | 可选 | - | - |
| 回复参数2 | +ResponseArg2 | 自定义 | 可选 | - | - |
| …… | …… | …… | …… | …… | …… |
| 回复参数N | +ResponseArgN | 自定义 | 可选 | - | - |
附录 A(规范性) REST 架构
A.1 REST 架构协议模型概述
REST 是一种通过采用统一方式将所有信息抽象为资源来创建服务的方法,任何能够被命名的信息都能够作为一个资源。REST 使用一个资源标识符(URI)来标识组件之间交互所涉及的特定资源。REST 组件通过以下方式在一个资源上执行动作:使用一个资源表述来捕获资源的当前或预期的状态、在组件之间传递该表述,一个表述是一个字节序列,以及描述这些字节序列的表述元数据。
A.2 REST 和 HTTP 方法
REST 服务通过 HTTP 的方法动词来实现,表 A.1 给出了 HTTP 方法动词。
| HTTP方法 | 操作(CRUD操作) |
| POST | 创建资源(Create) |
| GET | 读取资源(Retrieve) |
| PUT | 更新资源(Update) |
| DELETE | 删除资源(Delete) |
A.3 接口访问形式
HTTP URL 格式的一般形式为:
⟨ Protocol ⟩ : / / ⟨ Hostname ⟩ : ⟨ Port ⟩ ⟨ URI ⟩(?P1=v1&p2=v2...&pn=vn) 。
其中:Protocol 应支持 HTTP,宜支持 HTTPS;Hostname 指应用系统中 IP 设备的主机名称、IP 地址或域名;Port 指端口号;URI 指资源 URI; (?P1=v1&p2=v2...&pn=vn) 指查询字符串,每个资源都会定义需要的或可选的查询字符串参数,查询字符串参数以名字/值对形式出现。
A.4 REST 和 HTTP 响应状态码
表 A.2 给出了 REST 和 HTTP 响应状态码。
| HTTP状态码 | REST含义 | POST | GET | PUT | DEL |
| 200 | "OK"(成功)--请求已经成功。头部(Header)说明:无。消息体(Body)说明:在消息体中返回所请求的资源 | × | × | ||
| 201 | "Created"(创建成功)--请求已经创建了一项新的资源。头部(Head⁃er)说明:Location头部字段包含了新创建资源的URI。消息体(Body)说明:响应消息体返回一个描述新创建资源的实体 | × | |||
| 204 | "No Content"(无内容)--请求已经成功,但没有返回数据。头部(Header)说明:无。消息体(Body)说明:不允许有消息体 | × | × | ||
| 301 | "Moved Permanently"(被永久移动)--所请求资源位置已被永久移动。头部(Header)说明:Location头部字段包含资源新位置的URI。消息体(Body)说明:消息体可以包含资源的新位置 | × | |||
| 302 | "Found"(找到)--所请求资源应通过该位置访问,但实际上该资源位于另一个位置。这是设置别名的典型用法。头部(Header)说明:Loca⁃tion头部字段包含资源的URI。消息体(Body)说明:消息体可以包含资源的新位置 | × | |||
| 400 | "Bad Request"(坏请求)--请求消息构建不对,这通常用于创建或更新一个资源时,其数据是不完整或不正确的。头部(Header)说明:通过HTTP状态头部发送的原因说明(Reason⁃Phrase)包含错误信息。消息体(Body)说明:响应消息体可以包含更多的除头部"原因说明"以外的隐含错误信息 | × | × | × | |
| 401 | "Unauthorized"(未授权的)--请求需要用户认证后才能访问该资源。如果请求包含无效认证数据,则发送该响应消息。头部(Header)说明:在WWW⁃Authenticate头部字段中应指定至少一种认证机制。通过HTTP状态头部发送的原因说明(Reason⁃Phrase)可包含错误信息。消息体(Body)说明:响应消息体可以包含更多的除头部"原因说明"以外的隐含错误信息 | × | × | × | × |
| 403 | "Forbidden"(禁止)--该请求是不允许的,因为服务器拒绝处理该请求。出现这种情况的通常原因是设备不支持所请求的功能。头部(Header)说明:通过HTTP状态头部发送的原因说明(Reason⁃Phrase)可包含错误信息。消息体(Body)说明:响应消息体可以包含更多的除头部"原因说明"以外的隐含错误信息 | × | × | × | × |
| 404 | "Not Found"(找不到)--所请求的资源不存在。头部(Header)说明:无。消息体(Body)说明:无 | × | × | × | × |
| 405 | "Method Not Allowed"(方法不允许)--请求所采用的HTTP方法对该资源不支持,因为{API协议}规范不允许该方法。如果设备不支持该功能,但是有效的{API协议}操作,则应返回403响应码。头部(Header)说明:Allow头部字段列出针对该资源所支持的HTTP方法。消息体(Body)说明:无 | × | × | × | × |
| 409 | "Conflict"(冲突)--所执行的操作与内部状态或正在执行的过程冲突。这是一种过渡状态,延后一定时间可以重试该操作。头部(Head⁃er)说明:无。消息体(Body)说明:无 | × | × | × |
| HTTP状态码 | REST含义 | POST | GET | PUT | DEL |
| 500 | "Internal Server Error"(内部服务器错误)--发生了内部服务器错误。头部(Header)说明:无。消息体(Body)说明:无 | × | × | × | × |
| 503 | "Service Unavailable"(服务不可用)--HTTP服务器是正常的,但REST服务不可用。这通常是因为客户请求太多引起的。头部(Head⁃er)说明:Retry⁃After头部字段建议客户什么时间再尝试重新发送请求。消息体(Body)说明:无 | × | × | × | × |
| 注:X代表"适用"。 | |||||
A.5 服务数据对象资源 URI
表 A.3 给出了服务数据对象资源 URI。
| 序号 | 资源URI | 说明 |
| 1 | /System | 系统属性资源 |
| 2 | /System/Login | 注册资源 |
| 3 | /System/Logout | 注销资源 |
| 4 | /System/Keepalive | 保活资源 |
| 5 | /System/DeviceStatus | 端子系统设备状态资源 |
| 6 | /System/EdgeStatus | 边子系统设备状态资源 |
| 7 | /System/ExtendData | 扩展的上报数据资源 |
| 8 | /VideoSliceInfo | 结构化视频片段资源 |
| 9 | /VideoSlices/Data | 非结构化视频资源 |
| 10 | /VSlices | 打包的视频信息资源 |
| 11 | /ImageInfo | 图像资源 |
| 12 | /Images/Data | 非结构化图片资源 |
| 13 | /Photos | 打包的图片信息资源 |
| 14 | /ResultInfo | 算法结果资源 |
| 15 | /FeatureInfo | 特征结果资源 |
| 16 | /Feature/Data | 非结构化特征资源 |
| 17 | /ModelQuery | 模型资源查询 |
附 录 B(资料性) 结构化算法结果数据样例
下面给出若干典型算法的结果数据参数,参数字段的具体定义可参照 GA/T 1400.3—2017 中相关内容的规定。
人脸信息算法结果应符合表 B.1 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备编码 | DeviceID | string | 可选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 左上角X坐标 | LeftTopX | number | 可选 | 人脸区域,自动采集记录时为必选 |
| 左上角Y坐标 | LeftTopY | number | 可选 | |
| 右下角X坐标 | RightBtmX | number | 可选 | |
| 右下角Y坐标 | RightBtmY | number | 可选 | |
| 位置标记时间 | LocationMarkTime | string | 可选 | 人工采集时有效,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 人脸出现时间 | FaceAppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 人脸消失时间 | FaceDisAppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 性别代码 | GenderCode | string | 可选 | - |
| 年龄 | Age | number | 可选 | 可能年龄 |
| 发型 | HairStyle | string | 可选 | - |
| 是否戴口罩 | IsRespirator | string | 可选 | - |
| 口罩颜色 | RespiratorColor | string | 可选 | - |
| 是否戴帽子 | IsCap | string | 可选 | - |
| 帽子颜色 | CapColor | string | 可选 | - |
| 是否戴眼镜 | IsGlass | string | 可选 | - |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
人体信息算法结果应符合表 B.2 的规定。
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备编码 | DeviceID | string | 可选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 左上角X坐标 | LeftTopX | number | 可选 | 人的轮廓外接矩形在画面中的位置,记录矩形框的左上角坐标及右下角坐标,自动采集记录时为必选 |
| 左上角Y坐标 | LeftTopY | number | 可选 | |
| 右下角X坐标 | RightBtmX | number | 可选 | |
| 右下角Y坐标 | RightBtmY | number | 可选 | |
| 人员出现时间 | PersonAppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 人员消失时间 | PersonDisAppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 性别代码 | GenderCode | string | 可选 | - |
| 年龄 | Age | number | 可选 | 可能年龄 |
| 身高 | Height | number | 可选 | 人的身高可能值,单位为厘米(cm) |
| 发型 | HairStyle | string | 可选 | - |
| 附属物 | Appendant | string | 可选 | 当有多个时用英文半角分号";"分隔 |
| 口罩颜色 | RespiratorColor | string | 可选 | - |
| 帽子颜色 | CapColor | string | 可选 | - |
| 眼镜颜色 | GlassColor | string | 可选 | - |
| 围巾颜色 | ScarfColor | string | 可选 | - |
| 包款式 | BagStyle | string | 可选 | - |
| 包颜色 | BagColor | string | 可选 | - |
| 上衣款式 | CoatStyle | string | 可选 | - |
| 上衣长度 | CoatLength | string | 可选 | - |
| 上衣颜色 | CoatColor | string | 可选 | - |
| 裤子款式 | TrousersStyle | string | 可选 | - |
| 裤子颜色 | TrousersColor | string | 可选 | - |
| 裤子长度 | TrousersLen | string | 可选 | - |
| 鞋子款式 | ShoesStyle | string | 可选 | - |
| 鞋子颜色 | ShoesColor | string | 可选 | - |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备ID | DeviceID | string | 可选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 关联卡口编号 | TollgateID | string | 可选 | 卡口编码 |
| 近景照片 | StorageUrl1 | string | 必选 | 卡口相机所拍照片,自动采集必选,图像访问路径,采用URI命名规则 |
| 车牌照片 | StorageUrl2 | string | 可选 | - |
| 远景照片 | StorageUrl3 | string | 可选 | 全景相机所拍照片 |
| 合成图 | StorageUrl4 | string | 可选 | - |
| 缩略图 | StorageUrl5 | string | 可选 | - |
| 左上角X坐标 | LeftTopX | number | 可选 | 车的轮廓外接矩形在画面中的位置,记录左上角坐标及右下角坐标,自动采集记录时为必选 |
| 左上角Y坐标 | LeftTopY | number | 可选 | |
| 右下角X坐标 | RightBtmX | number | 可选 | |
| 右下角Y坐标 | RightBtmY | number | 可选 | |
| 位置标记时间 | MarkTime | string | 可选 | 人工采集时有效,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 车辆出现时间 | AppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 车辆消失时间 | DisappearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 有无车牌 | HasPlate | string | 可选 | - |
| 号牌种类 | PlateClass | string | 可选 | - |
| 车牌颜色 | PlateColor | string | 可选 | 指号牌底色,取ColorType中部分值:黑色、白色、黄色、蓝色、绿色 |
| 车牌号 | PlateNo | string | 可选 | 各类机动车号牌编号车牌全部无法识别的以"无车牌"标识,部分未识别的每个字符以半角"⁃"代替 |
| 挂车牌号 | PlateNoAttach | string | 可选 | 各类机动车挂车号牌编号 |
| 号牌是否涂改 | IsAltered | string | 可选 | - |
| 号牌是否遮挡 | IsCovered | string | 可选 | - |
| 行驶速度 | Speed | number | 可选 | 单位为千米每小时(km/h) |
| 行驶方向 | Direction | string | 可选 | - |
| 行驶状态代码 | DrivingStatusCode | string | 可选 | - |
| 车辆类型 | VehicleClass | string | 可选 | - |
| 车辆品牌 | VehicleBrand | string | 可选 | 被标注车辆的品牌 |
| 车辆型号 | VehicleModel | string | 可选 | - |
| 车辆年款 | VehicleStyles | string | 可选 | - |
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 车身颜色 | VehicleColor | string | 必选 | - |
| 车内人数 | NumOfPassenger | number | 可选 | 车辆内人员数量 |
| 经过时刻 | PassTime | string | 可选 | 卡口事件有效,过车时间,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 遮阳板状态 | Sunvisor | number | 可选 | 0:收起;1:放下 |
| 安全带状态 | SafetyBelt | number | 可选 | 0:未系;1:有系 |
| 打电话状态 | Calling | number | 可选 | 0:未打电话;1:打电话中 |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
| 特征列表 | FeatureList | string | 可选 | 人脸特征列表 |
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备编码 | DeviceID | string | 可选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 左上角X坐标 | LeftTopX | number | 可选 | 非机动车的轮廓外接矩形在画面中的位置,记录矩形框的左上角坐标及右下角坐标,自动采集记录时为必选 |
| 左上角Y坐标 | LeftTopY | number | 可选 | |
| 右下角X坐标 | RightBtmX | number | 可选 | |
| 右下角Y坐标 | RightBtmY | number | 可选 | |
| 车辆出现时间 | AppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 车辆消失时间 | DisAppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 车轮类别 | BicycleType | string | 可选 | 二轮、三轮、未知 |
| 车辆款型 | BicycleClass | string | 可选 | 自行车、电动车、摩托车、其他、未知 |
| 车身颜色 | BicycleColor | string | 可选 | - |
| 车牌号码 | BicyclePlate | string | 可选 | 非机动车车牌号码 |
| 载客数量 | PassengerNumber | number | 可选 | - |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备ID | DeviceID | string | 必选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 左上角X坐标 | LeftTopX | number | 可选 | 物品的轮廓外接矩形在画面中的位置,自动采集记录时为必选 |
| 左上角Y坐标 | LeftTopY | number | 可选 | |
| 右下角X坐标 | RightBtmX | number | 可选 | |
| 右下角Y坐标 | RightBtmY | number | 可选 | |
| 位置标记时间 | LocationMarkTime | string | 可选 | 人工采集时有效,按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 出现时间 | AppearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 消失时间 | DisappearTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 物品形状 | Shape | string | 可选 | 被标注物品形状描述 |
| 物品颜色 | Color | string | 必选 | - |
| 物品大小 | Size | string | 可选 | 被标注物品大小描述 |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
| 特征列表 | FeatureList | string | 可选 | 人脸特征列表 |
| 名称 | 标识符 | 类型 | 选择状态 | 备注 |
| 设备ID | DeviceID | string | 可选 | 注册设备唯一编码 |
| 结果数据版本 | Version | string | 可选 | - |
| 出现时间 | BeginTime | string | 可选 | 按照格式:"YYYY⁃MM⁃DD hh:mm:ss.ss" |
| 天气情况分类 | WeatherType | string | 可选 | - |
| 人群聚集程度 | PopulationDensity | string | 可选 | - |
| 物品密度 | DenseDegree | string | 可选 | - |
| 场景重要程度 | Importance | number | 可选 | 取值为1~5,数值越大表示越重要 |
| 图像列表 | SubImageList | SubImageInfoList | 可选 | 可以包含0个或者多个子图像对象,可按照GA/T 1400.3-2017中A.6的规定 |
| 特征列表 | FeatureList | string | 可选 | 人脸特征列表 |

评论