ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

视觉算法边缘设备落地整理

视觉算法边缘设备落地整理 前提这篇文章是结合的开源工程cosmo-edge去记录从算法到实际服务的时候需要去进行的工程化的内容以及对比以下cosmo-edge 和其他相关边缘设备引擎的差异基础流程先简单介绍一下当我们有一个视觉算法从模型到落地大概要经过哪些环节。以最常见的行人检测为例。当我们有一个行人检测的模型以及有一个区域计数的需求时那么现在简单数理一下从一个pt或者onnx模型 变成一个 可以在边端跑起来的服务要做哪些。主要分为四大方向跑模型连设备加逻辑存结果跑模型跑模型就是基础的把训练好的算法模型无论是分类检测或者其他在目标芯片上运行起来且有正确的结果。确定边端芯片首先要确定这服务运行的环境最基础的就是电脑、服务器这类大型设备这块如果涉及显卡无论是NVIDIA还是国产的都有相关的推理引擎这边就不需要过多介绍了。但是在边端的设备中不同厂家的推理引擎差异很大且模型文件基本都会涉及转换。这边先简单介绍下比较出名的一些边端设备和对应的推理引擎以及转换之后模型的格式。推理引擎绑定芯片模型文件TensorRT DeepStreamNVIDIA Jetson.trtCANNACL华为昇腾.omRKNN-Toolkit2瑞芯微 RK3588.rknnTPU-MLIR / BMRuntime算能 BM1684X.bmodelMagicMind / CNRT寒武纪 MLU220.mm上面表格中的都是比较主流的芯片和推理引擎当然还有更多不出名的芯片以及他们的引擎和模型文件。实现推理代码在确定好最重推理的硬件设备和推理引擎之后要把自己的模型跑在硬件设备上还要实现推理的代码。就类似在pc端用python去实现一个读数据跑模型的代码但是不同的推理引擎有自己的底层的差异所以不同芯片的推理代码实现也是不一样的。验证一致性这个是最麻烦最耗时也是最容易忽略的。因为不同的芯片的底层推理存在一些差异所以即使相同的模型在不同芯片上最终的表现效果也存在差异。所以至少要保证原始模型和转换之后的模型表现的一致性。当以上都完成之后可以算是完成跑模型这一步骤。连设备这里的连设备是指连接信息采集的设备、其中主要就是各种摄像头。也是因为芯片存在的差异连接方式和解码方式也会有差别。其中也有软解码和硬解码的区别这里不细分了。想了解的可以看硬解码和软解的区别加逻辑在模型一致的情况逻辑设计的越好最终的业务表现也会越好。如果说一个AI服务算法的表现是追求上限那么逻辑设计保证下限。以一区域的人数统计来说需要增加哪些逻辑呢。区域人数统计逻辑设计前提条件基于前面相当于我们已经有个能采集到数据的摄像头和一个可以在芯片上运行的行人检测器模型这个时候要实现在摄像头下的区域人数统计还需要做什么呢1.几何边界划定通过工具或者代码 实现在视频画面上绘制出需要统计的区域如商场入口、斑马线、安检通道2.边界比对是算法在连续视频帧中对目标如人体检测框/Bounding Box与已确定的边界进行空间位置关系计算的过程。这是决定“是否加1”或“减1”的核心逻辑。3.多目标跟踪既然要考虑连续视频帧中行人和区域之间的关系那么就得只要前后帧的所检测到的目标的id是固定的。详细细节如果对这块不了解的同学可以去看cosmo-edge中的教程。通过以上设计就是可以在视频中选定一个区域然后统计这个区域中有多少人。存结果这里存结果就是根据业务需去进行存储那么还是以区域人数统计为例常见的区域人数统计的业务需求中一般有以下几种:定时存储事件存储原始数据存储1.定时存储很好理解就是固定时间统计一下人数然后记下来2.事件存储就比较复杂了因为事件存储一般是根据事件触发的规则去实现的譬如人数超过多少人记录下来或者人数少于多少人记录下来。更复杂一点的可能要根据人流量变化以及其他数据分析的因素进行存储这里主要会跟业务挂钩就不细说了3.原始数据存储比较好了解就是要存储原始视频以便日后查证需要。当然因为区域人数统计比较简单所以存结果的方式也没那么复杂。如果想知道更多存储方式可以去查看其他相关资料。cosmo-edge现在基础流程梳理完了基于这个流程中的内容简单介绍一下cosmo-edge 在这个四块中的都做了什么方向cosmo-edge 做了什么最终得到什么跑模型管理、加载并执行多平台 AI 模型检测框、分类、分割、跟踪或语义判断连设备连接边缘计算盒、摄像机、视频流和业务平台持续、可管理的视频分析输入加逻辑通过可视化 Pipeline 组合模型与业务规则区域入侵、未戴安全帽等完整业务任务存结果保存事件、图片、视频和结构化数据并对外推送可查询、可追溯、可集成的业务结果在开源社区中 与相近的Frigate和Viseron对比三个开源工程的差异如下:项目跑模型连设备加逻辑存结果CosmoEdgex86 ONNX Runtime、Sophon BMRT、Rockchip RKNN模型仓库及 CV/VLM/DINO 任务视频通道、边缘盒管理及 REST/WebSocket/MQTT/webhook 平台接口Web 可视化 Pipeline检测、分类、跟踪、过滤、区域、计时和事件SQLite 事件、抓拍、目标图、可选视频及结构化属性事件中心查询/导出/推送Frigate监控场景检测器和分类能力支持多种加速器FFmpeg/go2rtc、RTSP、ONVIF、Home AssistantYAML 配置运动、mask、zone、目标过滤、停留与告警不是通用可视化算法 DAG连续/运动/告警录像、快照、Review、搜索、保留和导出NVR 能力很强Viseron组件化检测、分类、人脸和车牌能力FFmpeg/GStreamer/go2rtc 摄像头与流接入偏 Home AssistantYAML 组合 camera、motion、detector、post processor、recorder以预定义 domain 为主连续、事件、手动录像时间线、PostgreSQL、分层存储和保留策略在能力上三者各有千秋但是cosmo-edge有一个主要特点就是把所有的东西都通过可视化展示出来了也就是对于熟悉业务但是对底层技术不了解或者不精通的开发者来说是非常友好的。模型管理页面设备管理页面告警管理页面逻辑管理页面所以对于使用者而言之需要知道该怎么用就可以后续会开系列详细介绍在每个方向上cosmo-edge是怎么实现的以及常见的视觉智能业务需要注意的点。#参考文献5大芯片、6大引擎、22项行为识别算法边缘AI视频分析落地这一篇讲透了硬解码和软解的区别cosmo-edgefrigateviseron
返回列表