← 首页 · 硬件与算力 硬件与算力

国产 NPU:GStreamer / 厂商 IVA 插件对照表

调研日:约 2026-10-25(Asia/Shanghai)
定位:电力站端多路视觉「解码 → 前处理 → NPU → OSD/编码 → 事件上报」粘合层选型。并列 算能 Sophon、爱芯 AXERA、地平线 Horizon,并简表对照已有文档中的 Rockchip mpp+rknn 与 NVIDIA DeepStream nvinfer(不重复长写)。
实证:GitHub sophgo/sophon-stream、sophgo/sophon_media、AXERA-TECH/ax-pipeline / ax-video-sdk、地瓜 RDK DOC(VPS/PYM、hbmem、hobot_dnn)、DeepStream 7.1 nvmsgbroker、Rockchip MPP/DMA-BUF 社区实践。
命名警告:欧洲 Axelera Metis(Voyager SDK 的 axinferencenet)≠ 国产 爱芯 AXERA(.axmodel / AxEngine)。下文「爱芯」一律指 AXERA-TECH。


0. 一句话结论

厂商 站端「主粘合层」是什么 是否以 GStreamer 为官方 IVA 骨架
算能 sophon-stream(自研 element 流水线)+ BMCV/BMRuntime;媒体侧 sophon-ffmpeg / sophon-opencv 否(主路径)。sophon_media 仓库声明持续做 GStreamer,但公开 README 无稳定插件接口文档;生产以 sophon-stream JSON 图为主
爱芯 AX-Pipeline(JSON 多路)+ AX-Video SDK;推理 AxEngine / .axmodel 否。官方中间件是 C++ Pipeline,不是 gst 元素树
地平线 多媒体绑定(VIN/VDEC↔VPS/PYM↔VENC)+ TROS hobot_dnn 否。官方 Smart Box / RDK 例程走 RTSP+VIO/VPS+BPU+ROS2,未见官方 GStreamer IVA 插件矩阵
瑞芯微(对照) GStreamer mppvideodec/mpph264enc + RGA + 社区 rknn/rknnfilter 是(编解码);推理元素多为社区
NVIDIA(对照) DeepStream:nvstreammux + nvinfer + nvmsgbroker 是(最完整官方 IVA gst 栈)

电力站端若强依赖「一路 gst-launch 管到底」,只 Jetson DeepStream 与 RK 编解码侧最接近;三家国产主力是 自研 Pipeline / ROS2 / 多媒体绑定,MQTT 事件应做 旁路异步发布,勿塞进热路径。


1. 总表(按硬件行)

硬件 关键组件 / 元素名 样例 repo 零拷贝能否打通 与 MQTT / 事件上报接法 注意事项
算能 BM1684 / 1684X / 1688 / CV186AH BMCV(bm_image、VPP);BMRuntime;sophon-stream elements:decode / encode(h264_bm/h265_bm)/ osd / yolov5|v7|v8|yolox / bytetrack / distributor / converger / blank;媒体:sophon-ffmpeg、sophon-opencv;GStreamer:见 sophon_media(开发中) sophgo/sophon-stream;sophgo/sophon_media;官方 libsophon + sophon-mw deb 设备侧可打通:算法插件基于 BMCV+BMRuntime,帧在 TPU 设备内存;bmcv_image_attach 可挂外部设备缓冲。勿把每帧 bm_image 拷回 host 再推理。与通用 GStreamer DMA-BUF 的官方一键桥 公开文档仍弱 在 blank 或自研 element 的 doWork 读 ObjectMetadata(channel/frame/检测框),异步 mosquitto/paho 发 JSON;encode 旁路 RTSP/RTMP/WS 仅给人看。不要把 MQTT 同步写进推理线程 JSON 配图即可搭「检测→跟踪→属性→推流」;适用 SE7/SE9 多路站端。.bmodel 与 TPU-MLIR/SDK 同系列。GStreamer 若强需,先用 sophon-stream 出 RTSP 再让外部 gst 消费,或等 sophon_media 成熟后再迁
爱芯 AX650 / AX620E(630C/620Q)/ AXCL 卡 AX-Video SDK:AxImage、VDEC/VENC、IVPS(crop/resize/csc)、demux/mux/OSD;AX-Pipeline:demux→decode→(npu+osd+tracking)→encode→mux;NPU:AxEngine + .axmodel(Pulsar2);插件模式 inproc / process AXERA-TECH/ax-pipeline;AXERA-TECH/ax-video-sdk;AXERA-TECH/pyaxengine;axcl-pipeline(FFmpeg+NPU,非 gst) CMM 路径可打通:AxImage 默认走 CMM(硬件编解码/IVPS 吃物理地址);文档强调性能优先复用 CMM。MQTT 不能发 CMM 指针——仅在事件线程对 ROI 做一次 CSC/JPEG 再上报 Pipeline 侧开 仅 AI 模式(省略 outputs)拿检测结果;或插件回调/process IPC 出口 → 独立 MQTT 进程。Web 控制台可看 CMM/DDR,但生产事件仍应走消息总线 勿与 Axelera Voyager 的 axinferencenet 混搜。AX620E 公开叙述偏 1~2 路 1080p;部分型号 H.264 decode only。inproc 最快但插件崩即整管线崩;站端更稳用 process。PyAXEngine 适合原型,算力卡正式部署优先 pyAXCL
地平线 RDK X3 / X5 / Ultra 等 底层:VPS(IPU+PYM 金字塔+GDC)与 VIN/VDEC/VENC HB_SYS_Bind;上层 TROS:hobot_dnn(DnnNode)、hobot_rtsp_client、hobot_codec;消息:ai_msgs/PerceptionTargets、/hbmem_img D-Robotics/hobot_dnn;hobot_rtsp_client;RDK DOC:视频处理 / zero-copy / Smart Box 同机跨进程可打通:Foxy 系 hbmem / Humble+ 走 ROS2 loaned message;相机发 /hbmem_img,算法 create_subscription_hbmem。限制:固定消息大小、同设备、QoS 宜 BEST_EFFORT。BPU 不通过 HB_SYS_Bind 挂进 VPS,由 hobot_dnn 取 NV12/金字塔地址推理 订阅 PerceptionTargets(或业务自定义 topic)→ 序列化 JSON → MQTT。hbmem 不能跨设备,MQTT 节点必须吃「普通」结果话题,不要试图零拷贝出站 官方路径不是 GStreamer。站端多路优先 Smart Box 思路:RTSP→解码→人体/人脸等→结果给业务。模型 .bin 与 hb_mapper/march 绑定;多路时注意 ion_size 等内存配置
Rockchip RK3588(对照简表) mppvideodec / mpph264enc/mpph265enc(rockchipmpp);RGA(rgavideoconvert 等);社区 rknn / rknnfilter SDK gstreamer-rockchip;Meonardo/gst-rockchip;社区 rknn gst 插件;airockchip/rknn_model_zoo DMA-BUF 路径可打通:video/x-raw(memory:DMABuf) + MPP 外部 buffer + RGA;生产需自己钉死 caps,避免掉回系统内存拷贝 appsink / SHM 旁路最新帧 → RKNN 线程 → 后台 MQTT(社区 uglycam 等模式);推理与网络解耦 详见既有《GStreamer 芯片元素矩阵》;.rknn 与 Toolkit2/runtime 同系列;主线内核 ≠ 厂商 rknpu
NVIDIA Jetson(对照简表) nvstreammux、nvinfer/nvinferserver、nvtracker、nvdsosd、nvmsgconv、nvmsgbroker DeepStream 开发指南 / NGC;JetPack↔DS 版本表见既有文档 NVMM / NvBufSurface 官方零拷贝最成熟 nvmsgbroker + libnvds_mqtt_proto.so 官方旁路;注意长跑断线(DS 7.1 弱自动重连,新版本改善) .engine 禁跨 JetPack/TRT;升级清 GST 缓存并重建引擎

1.1 读表方法

  • 「关键组件」:优先写厂商文档/仓库里能搜到的符号名;没有 gst 元素就写 Pipeline/API 名,避免虚构 gst-inspect 结果。
  • 「零拷贝」:指解码输出到 NPU 输入是否可留在设备/CMM/DMA-BUF;不等于 MQTT 也能零拷贝出站。
  • 「样例 repo」:以 2025~2026 仍可克隆的 GitHub / 地瓜文档为准;私有 Gerrit 仅作存在性提示。
  • 电力现场验收最少三步:①单路 RTSP 通;②N 路加模型后的稳定 FPS;③拔网线/杀 MQTT 后推理线程是否仍存活。

2. 分厂商手册(粘合层怎么选)

2.1 算能:把 sophon-stream 当「国产 DeepStream」

  • 骨架:JSON 描述 element 图;每路线程绑 datapipe;算法 element 内前处理→推理→后处理可拆开以提高吞吐。
  • 媒体:解码/编码走硬件(h264_bm/h265_bm,I420/NV12);可直接 RTSP/RTMP/本地文件/WebSocket。
  • 与 GStreamer 关系:日常 不要 假设存在稳定的 gst-inspect IVA 元素名。sophon_media 把 GStreamer 列为持续开发模块,但公开材料仍以 FFmpeg/OpenCV/Sample 为主。站端集成策略:IVA 全在 sophon-stream 内闭环,对外只暴露 RTSP 预览 + MQTT 事件。
  • 二次开发:官方 blank element 是插 MQTT/规则引擎的标准缝;检测-跟踪-分发-属性类可直接抄 yolov5_bytetrack_distributor_resnet_converger 等 samples。

2.2 爱芯:AX-Pipeline + CMM,而不是「axstream gst」

社区口语里的「axstream」更接近 AX-Pipeline 输出 RTSP 名 / 流水线品牌感;实证仓库名是 ax-pipeline / ax-video-sdk。AxEngine 负责 .axmodel,不替代编解码。

  • 多路:JSON 配 1 demux + N mux;NPU 插件可限 npu_max_fps。
  • 隔离:站端插件建议 process,避免 YOLO 后处理崩拖死全部摄像头。
  • 算力卡:axcl-pipeline 走 FFmpeg AXCL 插件 + NPU,同样不是 GStreamer。
  • 事件:预览用 MJPEG/OSD;告警用独立线程压缩小图 + MQTT(Sparkplug 或自有 JSON schema)。

2.3 地平线:VPS/PYM + TROS,GStreamer 不是一等公民

  • 硬件前处理:PYM 产出模型所需金字塔/ROI,减少 CPU resize;注意 PYM 层数/流量上限与「IPU 绑 PYM 后不能再绑 VOT/VENC」等约束。
  • 软件:hobot_dnn 继承 DnnNode → 订图像 → 异步 BPU → 发 PerceptionTargets。Smart Box = RTSP 客户端 + 检测 + Web/业务出口。
  • 站端含义:若团队已有 ROS2 运维能力,RDK 很顺;若运维只会 gst-launch / DeepStream 配置文件,迁移成本高于算能 sophon-stream 或爱芯 JSON Pipeline。

2.4 与既有《GStreamer 芯片元素矩阵》如何分工

既有 cheatsheet 已覆盖 Jetson / RK / Hailo / OpenVINO / Coral / NXP 的 元素名与 BSP 绑定。本文不重复那些长表,只回答:国产三强有没有对等的 nvinfer/mppvideodec 官方 gst 元素?答案基本是「没有,另有 IVA 骨架」。值班时可两份对照:外设与海外板看 gst 矩阵;SE7/爱芯派/RDK 看本文 Pipeline/TROS 行。

若项目强制「运维界面只能填 gst-launch」,可选折中:

  1. 外层 GStreamer 只做拉流/录像/转发(rtspsrc/filesink),推理进厂商 SDK 进程,经 Unix socket / SHM / RTSP 环回 交换;
  2. 或 厂商 Pipeline 出 RTSP,上级 NVR/平台用标准播放器接入——电力站端多数本就如此。

强行自研「国产 nvinfer 兼容插件」成本高、且易与下一代 SDK 断裂,除非有三年以上平台团队。


2.5 零拷贝:三家各自卡在哪一层

层次 算能 爱芯 地平线
解码输出 设备 bm_image / 硬件帧 CMM 上的 AxImage(NV12 等) VDEC/VIN → VPS 通道帧
前处理 BMCV VPP(缩放/CSC/抠图) IVPS crop/resize/csc PYM 金字塔 / IPU ROI
推理输入 BMRuntime 吃设备张量 AxEngine 吃 .axmodel 输入布局 BPU 吃 NV12/金字塔地址
跨进程 同卡内 element 传 metadata;出进程易破零拷贝 process 插件 IPC 必然有拷贝或映射代价 hbmem / ROS2 loaned 同机可零拷贝
出站 MQTT 只应带框与小图 JPEG 同左;禁止发物理地址 同左;hbmem 不出站

实操验收:用厂商性能计数器或 bm-smi / CMM 监控 / ion 统计,对比「全链路」与「强制 memcpy 到 host」的 DDR 与 FPS;差不过 10% 说明零拷贝已断。


2.6 MQTT / 事件上报最小约定(三家共用)

建议 payload 字段(JSON):ts、site_id、cam_id、model_ver、task(helmet/fire/intrusion…)、track_id、score、bbox(归一化或像素+分辨率)、snapshot_url(可空)、raw_codec(可选 h264 关键帧哈希)。

实现要点:

  • 队列深度 1~N 最新帧语义:推理慢于摄像头时丢旧保新,避免告警延迟滚雪球;
  • MQTT 客户端独立线程 + 本地落盘缓冲:断线不堵 NPU;
  • 预览 RTSP 与告警 MQTT 分通道:变电站专网常限带宽,全帧推云不可取;
  • DeepStream 已有 nvmsgbroker 的站点,国产盒对齐 同一 topic 层级与字段名,上层平台只维护一套规则。

3. 电力站端「推荐粘合方式」(短建议)

  1. 多路变电站主机(国产优先):算能 BM1684X + sophon-stream。图内完成硬解→YOLO/跟踪→OSD→RTSP;blank/自研 element → MQTT(主题按 site/bay/cam/event);模型日更只换签名 .bmodel(配合既有 Mender 管系统 + 自建模型仓)。人员/车辆/安全帽/烟火等视觉任务直接复用官方 yolov5/v8 + bytetrack samples,再在 blank 里挂规则(区域入侵、未戴帽持续 N 帧)。
  2. 4~8 路低功耗盒子:CV186AH 或 AX650。爱芯用 AX-Pipeline process 插件;算能用同一套 sophon-stream 缩配路数与线程。不要为「必须 GStreamer」强行外包一层 gst,徒增拷贝与时钟同步问题。前端枪机若已是 AX630C,可考虑「前端粗检 + 站端复检」两级,减少回传。
  3. 巡检机器人 / 轻量开发:RDK X5 + TROS:VIO/VPS→hobot_dnn→PerceptionTargets→MQTT bridge;图像同机 hbmem,出站只发结构化事件。表计/红外若走手持终端,优先独立进程,避免与底盘导航抢 BPU 时序。
  4. 已有 Jetson 机房:DeepStream nvinfer + nvmsgbroker 保持不动;与国产盒子用 同一 MQTT schema,避免两套告警语义。新扩建机柜再评估 BM1684X 国产化替代,而不是同一机房混用三套运维语法。
  5. 已有 RK3588 工控:mpp 硬解 + RGA + RKNN 旁路线程 + MQTT;GStreamer 只管媒体,推理不要堵在同一 streaming 线程。与国产 TPU 盒子并存时,同样对齐事件字段。
  6. 统一原则:媒体零拷贝留在芯片内存域;事件总线只传元数据与可选小图;预览流与告警通道分离。OTA 上:系统用 Mender(或等价 A/B),模型仓签名校验后热切换;Pipeline/JSON/ROS launch 与模型版本号一并写入事件,便于事故回放。

4. 常见坑(值班备忘)

  • 搜「Axera GStreamer」时搜到 axinferencenet → 那是 Axelera,模型与驱动全不对。
  • 算能:把每帧下载到 OpenCV Mat 再推 bmodel → 吞吐直接腰斩。
  • 爱芯:对 CMM 帧 FlushCache 乱用或 MQTT 线程直接读设备指针 → 花屏/踩内存。
  • 地平线:把 hbmem 消息拿出回调再异步用 → 悬空;跨机器传 hbmem → 必失败。
  • 所有平台:MQTT 断线重连若同步卡在推理回调 → 整路摄像头「假死」。

5. 继续深挖建议

  1. 算能 sophon_media GStreamer:跟踪可 gst-inspect 的元素名、与 bm_image/DMA-BUF 的官方桥样本;有稳定插件后再评估「能否部分迁回 gst 运维习惯」。同步核对 PCIe 卡 vs SOC 模式下 decode element 的设备号与多卡调度。
  2. 爱芯 AX-Pipeline 插件 ABI:沉淀电力专用插件(安全帽/烟火/表计)的 ax_plugin_get_config_schema 与 process 模式崩溃恢复 SLA;量测 inproc/process 在 4 路 1080p 下的延迟差。
  3. 地平线站端非机器人镜像:RDK OS 在变电站无头/长时间满载下的 ion 泄漏与多路 RTSP 丢包基线;PYM 层配置与 YOLO 输入尺寸的推荐对照表。
  4. 统一事件 schema:三家 + DeepStream + RK 输出对齐 IEC/企业内部点表(设备 ID、置信度、bbox、抓图 URL、模型版本);是否采用 Sparkplug B 做主题规范。
  5. 零拷贝端到端探针:每平台一套「解码→NPU→OSD」帧计数与 DDR 带宽对比,验证宣称零拷贝是否在 多路 1080p30 下落地;记录强制 host 拷贝的回退条件。
  6. 信创与许可证:sophon-stream / ax-pipeline(BSD)/ TROS 组件许可证与闭源 MSP/BMCV 边界,写入采购清单与开源合规扫描。
  7. 与红外/表计支线合流:指针表、油位、光伏红外伪彩是否应共用同一 Pipeline 图,还是独立进程以免拖垮可见光多路——需在下一轮专题里用实测帧率拍板。

本文为公开网页与仓库交叉核验摘要,板级数字与插件可用性以上线前目标 BSP 实测为准。

← 国产 / 站端常见 NPU:公开 FPS · 功耗 · 导出路径补全 首页 边缘 AI 芯片/模组厂商深挖(续):算能 · 地平线 · Arm · MCU/SoC 与其他 →