2020-09-10

货拉拉在物流领域下的AIOT平台

作者 货拉拉技术

简介

物流其实就是把货物从A点运到B点的效率游戏,谁能把效率做好,就谁有机会。效率来自于全链路的信息化。物流中有三个重要的角色”司机、车、货物”。

货拉拉下的AIOT平台借助AI+IOT能力,致力于让”车”信息化、在线化、智能化。通过各种Sensor实时采集图像、音频、视频、GPS等数据直观的反馈车相关的数据。

终端数据采集

通过多路摄像头、GPS等Sensor全方位监控货仓及驾驶位的实景,获取人、货信息。

在终端设备中预置多种AI模型,如“人脸识别”可感知是否司机本人,且在全程行驶中持续保持识别,解决“人”安全的问题。货箱中预置“图像感知”模块可识别货物是否丢失,同样全程行驶中持续识别,解决“货”的安全问题。

在以前的货物运输中,我们只能从手机里采集出来的各种文本数据,而缺乏声音及图像信息,车载设备则弥补了这一缺陷。另外车载是安装在车上不受人为的干扰,因此数据将会更全更准确。

整体架构

主要功能模块说明

设备感知层:车载领域的各种传感器,多个角度的摄像头、GPS传感器、DMS等。以及部分的边缘计算能力,再设备终端埋有多种算法,如驾驶行为识别、物体识别、人脸识别,通过边缘计算将结果传输到服务端,可大量减少流量的消耗。

设备接入层:负责维护与设备端的通讯,采用TCP长链接方式实现双向通讯。同时负责对设备接入服务端进行鉴权,心跳保活,数据分发。

在线服务:主要针对设备的功能的远程控制,远程配置,生命周期管理,状态管理等。

离线/实时计算:AIOT平台主要与大数据体系打通,结合大数据分析能力给上层业务提供业务可以直接用的数据。

AI识别:对原始数据的加工处理,如原始图片、音视频做更多纬度的判断分析。

系统权限与日志监控:整体权限系统由权限系统控制数据安全、数据审计等,把控数据的流入流出安全。以及系统稳定性的监控分析。

基础能力

设备采用MQTT协议,与接入层网关保持长链接通讯。

为什么选择MQTT?

  • 广泛用于物联网领域:传统电子产品制造都在尝试往智能设备方向发展,而在传统电子产品里,为了技术壁垒各自在通讯协议上制作自己的一套标准,无标准化的协议阻碍了智能设备的发展速度。近几年MQTT协议借助国内阿里云、腾讯云,国外的aws对MQTT协议作为标准物联网接入协议的风气,已经在逐步受到各个传统电子制造商的认可,从而使用大部分厂商向MQTT协议做支持。因此极大的降低了智能设备接入服务器的成本,给业务方提供了更多的选择。
  • 协议设计健全:基本覆盖了长链接服务要解决的各种问题,如CONNECT指令做鉴权,SESSION概念做对话的保持,PING、PONG指令做心跳,PUBLISH消息指令定义QOS和DUP定义可靠消息的传输方式等。
  • 协议精简:协议天生就从节约流量角度设计,从利用每一位bit做位标记,可变头,心跳包仅2字节角度最大限度优化网络中的流量。

逻辑数据通道

借助MQTT协议的topic可分级的能力,组件化划分数据类型,把原始数据类型作为第一级发给网关,网关通过逻辑匹配分发到指定数据处理能力的模块。如需数据清洗、过滤等能力,由后端服务处理。

在线升级(OTA)

智能硬件不像互联网的app软件一样方便升级迭代,比如手机里的app即使再大的bug,哪怕程序无法打开了,都可以通过手机应用软件来提示升级,或者发个短信提示客户到某某地址下载更新。而在智能硬件里如果软件故障无法联网,基本就是“变砖”。因此平台对OTA做严格的流程控制,如下图:

升级过程分为主动升级、被动升级两个过程。

主动升级:是设备启动时设备发起检测升级,主动升级重要的一点是把升级流程放在“固件启动流程的第一步”,再设备上电后,不考虑一切功能相关的代码逻辑,先检测升级,升级完成后再启动其他逻辑。不过从整个硬件活动周期来讲,硬件第一步要启动的是自身的系统以及驱动,就像电脑启动windows系统以及显卡、网卡等驱动加载后才会有其他软件的启动。因此如果系统跟驱动存在问题,则依然会变砖。但智能设备里的系统不像电脑或者手机一样会后台自动升级,因此由于驱动出问题的概率极低。因此把OTA放在所有软件启动的第一位,再加上最成熟简单的http协议即可保障稳定性。

被动升级:为长期设备保持在线不重启的情况,做的紧急升级流程。服务端通过下发一条指令即可。

配置中心

在常见的app开发上我们都见过为了能做一些从服务端灵活控制app行为或者参数的动作(如开机动画),同样在智能设备里也有一些这样的操作,如录像的分辨率、上报GPS的频率等等,通过配置中心来下发参数控制。相比OTA流程要简单很多,正常运作后30分钟轮训一次上报,延迟调整设备参数。

终端AI能力

人脸识别

通过车载摄像头动态下发人脸底图,设备在终端做到识别是否某人,并上报给服务端给业务做各种业务场景应用。

安全驾驶

货运过程中存在更多的安全驾驶隐患,通过DMS在终端识别司机是否有打电话、抽烟、瞌睡等影响驾驶的行为,并上报给云端并实时作出相应处理,可通过设备语音播报给司机警示声音。

同时借助长期的驾驶行为分析数据积累,可帮助改善司机驾驶行为。如此循环的上报、改进,最终达到提升改善安全驾驶的效果,也同时提高了司机的服务质量。

总结

物流领域越来越数字化、智能化。货拉拉下的AIOT平台,更关注物流领域下场景优化,丰富该场景下数据类型,从而不断的改善提升服务质量以及给予业务更多的数据挖掘的基础。

作者介绍: 刘丁(joey.liu),后端架构师