把海量摄像头接入与 AI 检测装进一套栈(EasyAIoT)
EasyAIoT 是 MIT 开源的云边端一体化平台,把 GB28181/ONVIF 摄像头接入、YOLO 实时检测、IoT 设备管理和可视化看板收进同一套软件栈,也可装到 2GB 边缘设备或企业级一体机上。这篇文章讲清它的模块分工、部署入口、能落地的算法任务、真实用户踩过的坑,以及它不适合哪些场景。
智能物联网项目落地时会撞上同一堵墙:视频系统、设备平台、算法服务各做各的,集成成本高,运维割裂,摄像头路数一上来就难扩。
EasyAIoT 是一套用 Python 等语言写的云边端一体化平台,把摄像头的 GB28181/ONVIF 接入、YOLO 实时检测、IoT 设备管理和可视化看板放进同一套软件栈,面向要自建视频智能分析的团队。
这套栈拆得很细,WEB、DEVICE、EDGE、SENTINEL、VIDEO、RTC、AI、RUNTIME、POST、VISUALIZE、TWIN、TRANSFORM、TERMINAL 等模块各管一段,同一份软件能跑在 2 GB 的边缘独立设备上,也能装进带 IoT 管理、海量视频接入与 AI 分析的企业级全栈一体机里。仓库用 MIT 许可证开源,主要语言是 Python,地址在 https://github.com/soaring-xiongkulu/easyaiot,目前 737 Star、230 Fork、9 Watcher,开放 Issue 4 个。

五分钟先跑通
想先看一眼效果,README 给了一个在线体验入口,产品介绍、四档硬件层级、安装包下载和文档入口都在官网:
官网(含安装包与文档入口):http://36.111.47.113:8090/
仓库地址:https://github.com/soaring-xiongkulu/easyaiot
自己部署有两条路。一条是在官网下载对应硬件档位的安装包;另一条是仓库里的 docker 一键安装脚本,用户在 Issue 里提到的部署后检查会挨个确认 Device 服务、AI 服务、Video 服务是否就绪,说明脚本会拉起一整组服务。
安装的具体命令、脚本路径和参数,仓库 README 节选里没有给出来,这里不替它补。语言构成上 Python 占 25.4%、Java 24.4%、Vue 23.1%、TypeScript 10.9%,另有 Shell 7.0% 和 Go 4.4%,跨语言栈意味着部署时你会同时面对 JVM 服务、Python 推理服务和前端构建产物。
打包发布的覆盖面写得很清楚:Ubuntu,CentOS 与 RHEL 7–9(x86 加 CentOS ARM,按 el7/el8/el9 出包),麒麟、欧拉,以及 Windows、macOS、ARM。这张清单来自 README 的 COMPILE 模块说明。
跑通之后你会得到什么
部署起来之后,你能在一个浏览器里同时看到设备接入状态、视频画面和算法告警,移动端 App 和小程序的控制台与 Web 端能力对齐,现场巡检和指挥中心看到的是同一套业务逻辑。
输出落在几处。一是 Web 控制台和可视化看板,设备数据可以摆成指挥中心式态势图,也能映射回 Web SCADA 组态画面;二是告警与证据,边缘侧本地决策后会自动聚合到云端;三是外部系统,TRANSFORM 把平台侧的业务事件按约定送到 MES、ERP、CRM、WMS 这类系统里。安装过程的日志也会打在终端,Issues 里排查服务未就绪就是靠它。
下一步通常是把摄像头挂上来。GB28181 和 ONVIF 是两条标准接入路径,家里那类消费摄像头走 RTC 的 P2P 桥接,大疆机场和无人机的航拍画面也有对应通道。
主要功能
- 多协议摄像头接入:走 GB28181 注册或 ONVIF 发现把监控摄像头纳管;RTC 模块基于 go2rtc 做消费级摄像头 P2P 桥接,覆盖 Tapo、Tuya、Ring、Nest、小米、Wyze、DoorBird、GoPro 和石头扫地机的摄像头,Web 端一键接入后即可进入统一的视频与 AI 研判流程。
- 算法任务编排:支持实时、抓拍、轮巡三类算法任务,按业务需要选择是持续跑检测还是定时抓帧。
- RUNTIME 原生高速执行层:编译成二进制后自行完成拉流、解码、YOLO 推理、推框和多路原始转发,README 说它比解释执行路径占用更低的 CPU 与内存,延迟也更稳,一个二进制覆盖实时、抓拍、轮巡和转发。
- 模型能力:内置 YOLO 目标检测、SAM 零样本自动标注、人脸与车牌识别,公开的 ONNX 模型包括打电话、口罩、车牌、跌倒、人脸等类别。
- POST 自定义研判:检测结果先经过过滤与复合规则再决定是否告警,改规则不用重新训练模型,上线前可以先跑一轮试用。
- IoT 设备生命周期管理:覆盖 MQTT、TCP、HTTP、Modbus-TCP、Modbus-RTU、OPC UA;EDGE 侧的 C# 采集运行时用可插拔采集器处理 Modbus RTU/TCP、OPC UA 等工业协议,本地调度后经 MQTT 与云端对接。
- 集群与边缘联邦:SENTINEL 持续暴露每个节点的就绪状态与可调度业务容量,缺环境时提示补齐,再按真实能力派活;联邦计算做集群调度;无限联邦边缘集群模式让普通开发板开箱即用,边缘本地决策,告警和证据自动汇总到云端。
- 多端与运维入口:ANDROID、IOS、HARMONYOS 三套打包壳从同一份前端代码出一套 APK/IPA/HAP;TERMINAL 模块整合自开源 uniTerm,覆盖 SSH、RDP、VNC、SFTP、数据库、Kubernetes 等 30 多种协议的终端与远程运维;PANEL 提供交付与值守入口,IDEA 是社区云 IDE,可直接在浏览器里改代码并提交 PR。
常用参数与配置
README 节选里没有列出具体的配置文件字段名和参数默认值,因此这里只写平台层面确定的几组可调项。
硬件档位是第一个要定的事:2 GB 边缘独立(edge)形态跑单点闭环,4–8 GB 边缘盒子(mini)跑单点智能,AI 一体机摄像头做楼层级覆盖,再往上就是带 IoT 管理、海量视频接入和 AI 分析的企业级全栈一体机。同一份软件覆盖这四档,不用维护多套版本。最近的 V201.1.0(2026-09-24)就是专门优化 mini 和 edge 形态部署的。
接入协议按现场设备选:视频侧是 GB28181、ONVIF 加 RTC P2P;物联侧是 MQTT、TCP、HTTP、Modbus-TCP、Modbus-RTU、OPC UA。RTC 桥接的品牌清单在 README 里列到了具体型号族,海外门铃走 Ring 和 Nest,国内小米设备可直接复用。
数据外发目标在 TRANSFORM 里按合同配置,指向 MES、ERP、CRM、WMS 等外部系统,README 强调这一步可配置、可追溯、可复用。
部署单元方面,从用户 Issue 可以看到安装完成后会拉起一组服务,包括 Device 服务、AI 服务、Video 服务,以及 gpustack、Nacos、iot-gb28181、zlm、srs-server 等容器;gpustack 内置 pgsql。仓库 README 节选没有给出这些服务的端口、镜像 tag 与资源配额,需要看完整文档和官网的安装说明。
结果在哪里看
主入口是 Web 控制台,移动端 App 和小程序提供对齐的能力,两边共享同一套业务逻辑。可视化侧有看板与 Web SCADA 组态,数字孪生由 V190.0.0 引入的 TWIN 模块承担。
算法结果以告警和证据的形式出现:边缘侧做本地决策,告警与证据自动聚合到云端;如果业务系统需要消费这些事件,走 TRANSFORM 按约定外发。设备与集群的健康状态由 SENTINEL 暴露,节点是否可调度、缺不缺环境,在这块看。
部署与排障阶段的输出在终端日志里,docker 脚本结束时会打印服务就绪检查结果,形如「[WARNING] 部分服务未就绪」,后面跟着打叉的服务名。
实际使用中的坑
仓库的 Issue 区记录了早期用户踩过的问题,多数已经关闭。
docker 一键安装脚本装完之后有服务起不来,是出现频率最高的那类。Issue 里贴出的检查结果是 Device 服务、AI 服务和 Video 服务三项未就绪,需要按日志逐个排查,状态已解决。同一时期还有健康检查地址不对导致容器 unhealthy 的反馈:iot-gb28181 与 zlm 容器跑着但健康检查失败,srs-server 按自动安装文档部署后缺一个依赖包,状态已解决。
算法侧的坑出在结果映射上。打电话、口罩、车牌、跌倒、人脸这些内置 ONNX 模型能正常出推理结果,但类别名称显示错,进而影响告警和规则判断,状态已解决。这条对做告警联动的团队影响最直接,类别名错了后面整条规则链都不可靠。
规模问题上,有用户直接问 1000 路摄像头同时做视频流检测时服务器带宽扛不扛得住,讨论集中在 4 条评论里,状态已解决。README 里 RUNTIME 原生执行层宣称比解释路径占用更低、延迟更稳,以及无限联邦边缘集群把算力下沉到现场,都是针对这类规模压力的设计。
另有 gpustack 重启失败的反馈,日志指向内置 pgsql 的数据目录被强制改成 777 权限导致无法启动;以及创建数据集时上传封面报「操作失败」、提示「请输入封面地址」,两条状态都是已解决。
选型参考
下面两张表里,EasyAIoT 是云边端一体化的算法应用平台,另外两个是自托管视频与设备互联方向的参照,和它要解决的问题并不重合。
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| EasyAIoT | 园区、厂区、连锁门店有几路到上千路摄像头,要把 AI 告警接进业务系统的集成商与运维团队 | 官网提供四档硬件形态的安装包,仓库另有 docker 一键安装脚本;README 节选未给逐条命令 | 仓库体积 1880098 KB,安装后要维护 Device、AI、Video、gpustack、Nacos、pgsql、zlm、srs 等多个服务,运维面不小 | 需要把摄像头接入、AI 检测、IoT 设备管理和看板放在一套栈里,并且接受整套部署的复杂度 | EasyAIoT |
| iptv | 想把零散直播源聚成一套自托管频道列表、只用来观看的个人或小团队 | 未逐一核实 | 它是直播源聚合与播放方向,不做 AI 视频分析,也不接入 GB28181 摄像头做统一管控 | 目标只在把多个源聚成一份频道列表并自己托管,不需要算法检测与告警联动 | iptv |
| P2WLAN | 要把异地设备像在同一局域网里互访的运维或个人 | 未逐一核实 | 它是异地组网方向,不提供摄像头接入协议,也不做推理与告警 | 需要解决的是网络可达性,而不是在视频上跑算法 | P2WLAN |
这两个项目解决的是另外的事,放在这里只给同类选型的读者一个横向坐标。如果你的目标仅是把直播源聚成频道列表,或者把异地设备的网络打通,EasyAIoT 的整套部署显得过重:仓库体积 1880098 KB,安装后还要维护 Nacos、pgsql、gb28181、zlm、srs 多个服务,启动与排障成本明显高于只做单项功能的方案。
合规红线
这套平台的算法能力包含人脸识别、车牌识别,README 里也提到风险人员布控与周界入侵检测,接入对象是摄像头。它只能部署在自有资产或已获书面授权的目标上,替第三方场所、他人住宅或未授权的公共区域装这套系统并采集人脸、车牌,会同时踩到个人信息保护与数据安全的法律边界。
公开的演示入口用的是测试数据,把它当成可以随便灌生产数据的开放环境同样不合适。人脸与车牌属于敏感个人信息,采集前要明确告知、限定用途和留存期限;把算法结果接到安防联动、人员管控这类业务流程上之前,先确认当地法规与所在平台的规则允许这么做。误用带来的法律风险和平台封禁后果,由部署方承担。
什么情况下别用它
只想要一个能把直播源聚起来看的自托管播放器,用 iptv 那类工具就够,不需要背上算法服务和多容器编排。只是想把异地设备网络打通,P2WLAN 这类组网方案更直接,EasyAIoT 在这里帮不上忙。
手上只有一台低配小机器长期挂着跑,同时不打算扩到多路视频并发,这套栈的部署与维护成本会盖过收益。团队里没人熟悉容器编排、JVM 服务与 Python 推理服务的联合排障,也不适合直接上生产,Issues 里几条服务未就绪的反馈都出现在这一步。
如果业务只需要单一模型做单点识别、不需要设备管理、不需要看板、也不需要把事件外发到 MES 或 ERP,那用一套轻量的推理服务加自己的业务代码,比引入整个平台更快落地。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.3 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 8.3 / 10 |
| 社区响应(权重 15%) | 9.9 / 10 |
| 文档质量(权重 15%) | 8.5 / 10 |
| 发布节奏(权重 10%) | 9.7 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
这类自建视频智能栈的落地记录不多,价值在于把模块分工、四档硬件形态、部署入口和仓库 Issue 里的真实故障放在一起,还专门写了不适合哪些场景,选型前能省一轮试错。需要保持谨慎的是:README 节选没给安装命令、配置字段和端口,文中的 Star、体积、版本与 Issue 状态来自原作者公开披露,诀.com 未独立验证,真要部署仍得对照完整文档逐项核验。
文中 Star、Fork、Watcher、仓库体积、许可证、语言构成、版本号与 Issue 状态来自 GitHub 仓库及原作者公开披露,诀.com 未独立验证;安装命令、脚本路径、配置字段、端口与资源配额在 README 节选中未给出;无独立测试或复现记录,部署结果不保证复现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在部署与运行两类:docker 一键安装后 Device、AI、Video 服务未就绪出现频率最高,另有 gpustack 因内置 pgsql 数据目录被改 777 权限而无法重启、Nacos 注册失败、h5 页面无法操作。算法侧有提交者报告内置 ONNX 模型类别名称显示错误,会连带影响告警与规则判断。还有人询问 1000 路摄像头同时检测时服务器带宽与压力,以及演示环境 admin 账号被禁用、缺少数据库脚本。以上问题状态均为已解决。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:soaring-xiongkulu(soaring-xiongkulu)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库