AIoT即融合了AI(人工智能)和IoT(物联网)的技术,图形图像处理是人工智能领域中重要的一个分支,在日常生活中也存在大量基于图形图像的处理的场景:比如交通违章抓拍,基于视觉的司机防疲劳监测,家用摄像机的老人摔倒报警等功能,利用物联网和边缘计算技术,则可以将云端训练好的模型更容易的推送到边缘,进而在边缘实现更高效的推理任务,AIoT的整合应用也在智能家居,网联汽车,智慧供应链等场景下有巨大的市场前景。 随着科技的发展,越来越多的细分场景要求尽可能多的将基于图形图像的AI技术和IoT技术结合在一起,比如工厂工地的安全帽检测,疫情状态下进入商场的是否佩戴口罩检测,基于视觉的ADAS高级驾驶辅助系统等等,面对这些日益增长的需求,如何快速落地一个AIOT项目变得更为重要,实际上,喊着“INVENT WITH PURPOSE”口号微软云Azure上提供了几个非常有趣的的工具就可以帮助我们快速的实现AIOT创新。
微软MVP实验室研究员
接下来我们以“消防通道,禁止占用”为例,看下如何利用微软云提供的工具落地这个场景。
Azure IoT Hub
Azure IoT Hub是一个可承载“百万级”设备的云端“网关”服务,主要提供了IoT 设备的身份验证,设备和云端的双向通讯,设备OAT,设备管理,安全等功能。
我们依次看下这几个功能对应的场景:
- 设备身份验证:
设备身份验证是设备和云交互的第一步,必须验证了设备的合法身份,才允许设备向云端发起数据请求。 - 设备和云的双向通讯:
所谓双向通讯,比如智能空调,从空调上报室温到云端后呈现在手机,实际上是一个设备上传“遥测”数据的过程;从手机上远程“控制”空调设定某个温度,即通过云端“反向控制”设备的过程 - 设备OTA:
设备OAT(Over-the-Air Technology),该技术最响亮的场景应该是智能汽车通过OTA升级最新的功能,实际上OTA通常会包含设备操作系统层面的更新和操作系统上的应用程序的更新 - 设备管理:
这是IoT系统的重要基础,所谓设备管理,主要是在维护某个IoT系统所包含的设备的“数据库”,这个数据库里记录着有多少台设备是可以连接到平台的,每台设备当前的运行状态是什么,是否对这些设备进行了逻辑的分组比如某个商场的某些自动扶梯,哪些设备可以在什么时间段执行一些耗时操作,比如硬件版本为1.0.1的位于上海市的汽车可以在周日凌晨2点经由用户确认后自动升级等等。 - 安全功能:
安全功能也是一个重要的功能,细数史上的IOT安全事件,从智慧鱼缸,到智能摄像头,智慧门铃都曝出过安全漏洞,某些漏洞可能泄漏用户隐私,有些则可能带来生命危险,比如医疗设备一旦被非法攻击,后果不堪设想。IoT 安全也会从几个层面考虑:1. 操作系统的安全,2.系统上应用的安全,3.通讯安全等。
Azure IoT Edge
Azure IoT Edge是一组运行在“边缘计算设备”上的应用集合,主要是一个包含Moby 容器引擎的一个运行时和一组内置的容器。这组应用集合可以安装在大部分的Linux或者Windows设备上,大到基于Widows 地铁闸机,银行自助取款机,小到基于Linux的树莓派,无人机等等设备都可以运行Azure IoT Edge , 同时既然是基于容器的运行时,那么理论上,任何可以容器化的服务也都可以运行在这个平台上,比如Mysql,Nginx等,当然微软原厂的一些云服务,也可以以容器形态运行在边缘设备上,比如Azure Functions,Azure SQL Edge等等。
之所以将应用部署在边缘计算设备上,主要有如下的好处,比如:
- 集成了与Azure IoT Hub交互的能力:
Azure IoT Edge的设备管理,双向通讯,OTA等能力与Azure IoT Hub打通,是一个从云端的Hub到边缘扩展延伸的方案。
- 内置了一些场景化的功能:
Azure IoT Edge针对工业等场景内置了一些工业协议支持,比如Modbus,OPC-UA等。
- 更低的时延和更强的算力下沉:
在有海量视频处理的场景下,时延是一个很重要的指标,比如在笔者曾经实施过的某个5G智慧港口,塔吊需要有一些基于视频的分析,对起吊的集装箱唛头进行拍照分析后记录集装箱装配区域,设想一旦拍照后20秒才有返回结果,则整体装卸货的效率会大大降低,因此通常会在塔吊附近安放专门的带有GPU的视频处理服务器,利用5G专网构建将塔吊摄像机和GPU服务器部署在一个由5G支持的“局域网”中,则时延大大的降低了。
- 可应对网络频闪:
在某些地下停车库或者高速公路上,可能出现4/5G信号不稳定的情况,这时候也可以利用边缘计算设备,然后将停车服务或高速的视频采集服务放置到“本地”,即使网络不好,依然可以完成终端和”边缘计算设备“的通讯。
- 应对数据主权问题:
某些工厂生产数据,有将数据存储在本地的要求,同时又希望将报警数据发送到云端,这种场景也可以在工厂内部部署边缘计算设备,在边缘设备上部署SQL Edge记录本地数据,在本地部署Azure Functions或者流分析服务对本地数据进行筛选分析并将报警数据发送出去。
- 云边扩展能力:
云边扩展主要是将云端的一些能力扩展到边缘,Azure上本身有很多原厂服务,可以以容器形式部署,这类服务大多也可以部署在本地边缘设备上,比如自定义视觉,SQL Edge等。
- 远程部署容器的能力:
通过将Azure IoT Edge和Azure IoT Hub配合使用,可以在云端配置容器部署清单,IoT Edge 会自动根据清单里的内容从云端拉取容器并部署在边缘计算设备上。
介绍完上述的这些内容,我们以一张图的形式概括IoT Edge的主要功能:
Azure Custom Vision
Azure Custom Vision 自定义视觉是一个可实现图像分类和图像识别的服务,如果我们要制作一个分类老虎和大象的应用,则只需要提供几十张老虎的照片和几十张大象的照片,然后在Custom Vision上进行标注,经由Custom Vision服务训练后,即可生成在线API或导出成容器或其他算法模型,通过简单的HTTP API交互即可实现物体分类。
在使用Custom Vision训练消防通道占用算法时可能需要考虑的训练集情况:
- 各种颜色的车辆
- 各种类型的车辆;
- 车头朝向;
- 天气因素(包含黑夜白天等)
利用Custom Vision 实现消防通道占用模型的训练之后可以导出容器并提供HTTP推理终结点,导出的容器可以通过IoT Hub部署到远程的边缘设备上。
部署在边缘设备上的Custom Vision模块也已经具备了对图像进行分类的能力。
接下来,我们看下如何利用Azure或第三方工具和服务实现边缘设备上的实时视频分析。
边缘设备上的实时视频分析
边缘设备上的实时视频分析主要包含视频解码,将视频处理成帧并将视频帧发送到AI推理服务器,AI推理服务器将结果返回,根据返回结果进行消息处理或者视频处理。当我们把视频解码和AI推理服务部署在相同的计算节点上时,可以通过共享内存发送视频数据给推理服务以达到30帧/秒的速率进行推理。
▌Azure video analyzer preview(仅供参考,即将停用)
Azure 视频分析器(预览版)提供了一个平台用于构建跨越边缘和云的智能视频应用程序。该平台包含一个 IoT Edge 模块和一个 Azure 服务。它提供捕获、记录和分析实时视频并将结果(即视频以及视频中的见解)发布到边缘或云的功能。AVA 内置了对RTSP的支持能力,可以直接对接大部分录像机。
AVA中集成了采用gRPC或HTTP实时分析视频的管道能力:支持两种gRPC和HTTP扩展来进行视频分析算法的集成:
AVA中的 扩展节点扮演代理的角色, 它对传入视频帧采样,并将视频帧转换为指定的图像类型。然后它将图像通过 REST/gRPC 转发到另一个 Edge 模块,该模块在终结点后运行一个 AI 推理模型,这些模型可以是自定义开发的容器,也可以是由custom vision中导出的容器。扩展处理器节点收集检测结果并将事件发布到 IoT 中心消息接收器节点。然后该节点将这些事件发送到 IoT Edge Hub,到达IoT Edge Hub的消息可本地存储或者过滤后上传到云端IoT Hub。
▌Intel OpenVINO™ DL Streamer 集成
尽管AVA即将停用,我们仍然可以将AVA的思路运用在与其他服务的集成上,比如Intel OpenVINO™ DL Streamer Edge AI 也提供了类似的功能,OpenVINO™ DL Streamer Edge AI 扩展模块是一项基于 Intel 视频分析服务(VA 服务)的微服务,它为使用 OpenVINO™ DL Streamer 构建的视频分析管道提供服务。开发人员可将已解码的视频帧发送到 AI 扩展模块,该模块执行检测、分类或跟踪并返回结果。AI 扩展模块会公开与视频分析平台(如 Microsoft 的 Azure 视频分析器)兼容的 gRPC API。
OpenVINO™ DL Streamer 的使用逻辑与AVA基本保持一致:
见解和行动-Power Platform家族的集成
边缘设备上的实时视频分析场景可以和Power Platform家族集成在一起,比如在收到某个消防通道被占用时,通过Power Automate和Power Apps 实现消息推送:
使用Power BI和Azure 流分析可以进一步将推理事件可视化:
在Power BI中使用播放器组件,同步观看对应的报警视频:
微软最有价值专家(MVP)
微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。29年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。
MVP是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。
更多详情请登录官方网站:https://mvp.microsoft.com/zh-cn
前往 Azure IoT Hub 官方文档,了解相关概念和操作指南,以及如何将 IoT Hub与其他 Azure 服务集成,生成完整的端到端解决方案。
点击前往 Azure IoT Hub 官方文档~