V2X 之算法架构与处理流程介绍

算法服务通过路侧设备与 MQTT 通信接收各种硬件厂商和设备的原始数据,目前经过数据适配与转化和 AI 数据融合与强化可插拔算法实现交叉路口碰撞预警,逆向超车预警,弱势交通参与者碰撞预警,感知数据共享,协作式变道的典型应用场景算法。目前算法服务设计支持各类算法横向扩展,为后期多种应用场景算法的添加奠定基础。 现整体结构分为四大部分:MQTT 通信,数据适配与转化,AI 数据融合与强化算法,复杂场景应用算法。

1.MQTT通信篇(v2xai_server/app.py)

  1. 目前整体基于路侧设备与 MQTT 通信。
  2. 算法服务通过 MQTT 的主题通配符方式来订阅各类主题。
  3. 用路由分发和正则匹配的方式获取各主题的数据。
  4. 通过 create_task 创建任务实例。

2.数据适配与转化篇(v2xai_server/adaptors.py)

  1. 算法服务⽀持⾮标准 RSM(Road Side Message) 数据的接⼊,各厂商和设备可根据自己的原始数据格式(原始数据指多样化⾮标准新四跨格式交通⽬标检测数据)。
  2. 算法服务内置了对应⼚家的⾮标准数据转RSM函数,以⼚家英⽂名或中⽂拼写为函数名。应⽤时依据接收数据的 MQTT 主题的关键字段,⾃动匹配内置的适配函数,统一转换成标准数据格式。
  3. 当原始数据缺少新四跨协议必要字段时,会将具体的缺少字段返回,并不在进行后续操作。
  4. 当原始数据缺少新四跨协议非必要字段时,会将具体的缺少字段返回,可继续进行后续操作。

3.AI数据融合与强化篇 (v2xai_server/processing.py;v2xai_server/pipelines):

  1. 算法服务默认调用 AI 数据融合与强化算法。
  2. 算法服务使用数据库替各算法保存各自的历史数据,各厂商和设备只需传最新帧数据即可满足算法需求。
  3. 算法服务已实现各类算法可插拔,可根据自己的实际需求添加或减少各类算法的调用。
  4. 算法服务调用一系列算法后,会将处理过得数据通过 MQTT 发送给路侧设备。
  5. 算法服务将路况的最新情况(车辆数,是否拥堵等),通过 API 发送给后端,后端获取后传给前端用于云控大屏展示。
  6. 算法服务将处理后的数据通过 MQTT 发送给前端,用于云控大屏的展示。
  7. 算法服务将场景应用算法所需数据存入数据库,用于场景应用算法使用。

4.复杂场景应用篇(v2xai_server/service.py; v2xai_server/svc):

  1. 算法服务启动时,会自动从数据库读取所有注册的 RSU 的经纬度信息,并进行坐标处理。
  2. 算法服务通过 MQTT 获取车辆请求数据,分析车辆请求数据来判断属于哪种应用场景。
  3. 算法服务会判断此请求。
  4. 算法服务从数据库将场景算法所需数据取出,传入各场景算法。
  5. 算法服务将场景算法返回的数据,经过相应转换后通过 MQTT 分别传给车辆和云控大屏。

附:

1. 算法服务架构图

算法服务架构图

2. 数据流通示意图

数据流通示意图

  1. RSM(Road Side Message):路侧单元消息(标准新四跨格式交通⽬标检测数据)
  2. AID(Algorithm Internal Data):算法内部流通数据,从存储逻辑的角度可区分为两类(不参与 Redis 存储的即时数据,参与 Resdis 存储的历史数据)
  3. CWM(Collision Warning Message ):车辆间碰撞预警及弱势交通参与者碰撞预警算法输出的预警信息
  4. RSC(Road Side Coordination ):换道引导和逆向超车预警输出的信息
  5. SSM(Sensor Sharing Message):多源感知数据共享输出的信息