
几百路视频、几十种算法同时跑,系统能不能稳住,取决于架构而不是模型本身。
园区摄像头从几十路涨到几百路,算法从一两个涨到几十个:人脸识别、车辆识别、安全帽、烟火、周界入侵、摔倒、占道、未戴口罩......但系统往往越搭越乱------每个算法一个独立服务,部署一堆容器互相抢资源;升级一个模型要停掉对应服务,业务跟着断;A 摄像头跑 v1、B 摄像头跑 v2,出了问题查半天版本;新算法接入还要改业务代码。
根因不是模型不够好,而是算法和业务混在了一起,没有分层。
|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| 核心判断 :把系统拆成算法平台 和业务平台两层。算法平台管模型的全生命周期------训练、注册、统一推理、调度、灰度升级、一键回滚;业务平台管场景和事件------视频接入、场景编排、报警联动、报表可视化。中间用统一推理接口解耦,业务方不关心模型是哪个版本、跑在哪张卡上。 |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 本文看点 * 智慧园区视觉系统为什么越搭越乱 * 整体架构:云-边-端 + 双平台分层 * 算法平台怎么搭:模型仓、统一推理、多模型调度 * 多模型怎么统一调用、怎么升级不中断业务 * 业务平台怎么搭:接入、编排、报警闭环 * 落地建议与常见坑 |
01 为什么智慧园区视觉系统容易越搭越乱
|-------|-------------------------------|-----------------|
| 典型症状 | 表现 | 根因 |
| 服务爆炸 | 每个算法一个容器,几十种算法几十个服务,资源争抢、运维混乱 | 算法与部署耦合,没有统一推理层 |
| 升级即中断 | 换模型要停服务、重启,业务跟着断 | 没有热加载和灰度机制 |
| 版本失控 | 不同摄像头跑不同版本,出问题对不上 | 没有模型版本管理和下发记录 |
| 接入困难 | 新算法要改业务代码,排期长 | 算法与业务逻辑耦合 |
这四个症状的共同根因是:模型的 " 生产 - 部署 - 调用 - 升级 " 没有被当成一个独立平台来管,而是散落在每个业务服务里。下一节看怎么用分层架构把它拆开。
02 整体架构:云 - 边 - 端 + 双平台分层

端采集、边推理、云管理;算法平台和业务平台在云端分层解耦。
2.1 三层物理架构
|---|------------------------------------|---------------------|
| 层 | 组成 | 职责 |
| 端 | 摄像头(RTSP / ONVIF / GB28181)、传感器、门禁 | 采集视频流和环境数据 |
| 边 | AI 边缘盒子(GPU / NPU,如 T4、A10、瑞芯微、昇腾) | 就近实时推理,单节点可跑数十路视频分析 |
| 云 | 算法平台 + 业务平台 | 模型管理、场景编排、事件存储、可视化 |
为什么要边?几百路视频全传到云端推理,带宽和延迟都扛不住。边缘盒子在摄像头旁边做实时分析,只把报警事件和截图传到云端,云端做管理和复盘。
2.2 双平台逻辑分层
云端不是一个大杂烩,而是拆成两个独立平台:
•算法平台:模型仓库、训练 / 微调、统一推理服务、模型调度、版本管理、OTA 下发到边缘;
•业务平台:视频接入、场景编排、事件管理、报警联动、报表、可视化大屏;
•中间接口 :统一推理 API(gRPC / HTTP)。业务方调的是"识别人员 / 识别车辆 / 检测安全帽"这种能力名,而不是"yolov8-person-v3"这种模型名。
2.3 这样分的好处
算法团队只管把模型训好、注册到平台、观察效果;业务团队只管把摄像头、场景、报警规则配好。模型升级不影响业务代码,新算法接入只需在算法平台注册一个能力,业务方按能力名调用即可。两边解耦,各自迭代。
所以呢? 架构的核心不是"用了什么新技术",而是把模型的生命周期和业务的场景逻辑彻底分开。下一节看算法平台内部怎么搭。
03 算法平台怎么搭:模型仓、统一推理、多模型调度

模型仓注册、统一推理引擎加载、调度器按场景路由到算力池。
3.1 模型仓库:给每个模型一张身份证
算法平台的第一件事是建模型仓库。每个模型注册时必须带一张"身份证":
|-------------|-----------------------------------------------|
| 字段 | 说明 |
| 模型 ID + 版本号 | 如 person_detect / v2.1,版本不可变 |
| 能力名 | 业务方按能力名调用,如"人员检测" |
| 输入输出规格 | 输入分辨率、输出字段(bbox、置信度、类别) |
| 精度指标 | mAP、召回率、误报率,标注测试集 |
| 框架与硬件 | PyTorch / ONNX / TensorRT / RKNN,适配 GPU 或 NPU |
| 适用场景 | 室内 / 室外 / 白天 / 夜间,标注适用范围 |
模型文件统一存在对象存储里,注册时只存元数据。这样业务方永远通过"能力名 + 版本"调用,不直接碰模型文件。
3.2 统一推理服务:一个引擎跑所有模型
关键设计是一个推理引擎,动态加载多个模型,而不是每个模型起一个服务。引擎支持热加载------新模型注册后不重启即可加载进内存,旧模型不用时自动卸载。对外暴露统一API:
|-----------------------------------------------------------------------------------------------------------------|
| textPOST /infer { "capability": "person_detect", "version": "v2.1", "image": "<base64>" } → 返回 bbox 列表、置信度、类别 |
业务方不需要知道这个能力背后是 YOLO 还是别的,也不需要知道跑在哪张卡上。
3.3 多模型调度:按场景路由和级联
园区里一个摄像头往往要同时跑多种算法。调度器做两件事:
•按摄像头配置路由:1 号摄像头(大门)跑人员 + 车辆 + 车牌;3 号摄像头(仓库)跑人员 + 安全帽 + 烟火;
•级联推理:先跑人员检测,只对检测到的人员区域再跑安全帽识别------比全图跑安全帽快几倍,也更准。
3.4 算力管理:边缘盒子要精打细算
边缘盒子算力有限,几十路视频同时跑必须做资源治理:
•模型量化:INT8 量化,精度损失可控,推理速度翻倍;
•动态抽帧:非关键场景从 25fps 降到 5fps,关键事件触发时升回全帧率;
•分时启停:夜间不需要占道检测,自动停掉释放算力;
•过载降级:算力打满时,按优先级保关键算法(如烟火),非关键算法降分辨率或暂停。
所以呢? 算法平台的本质是把 " 模型 " 变成一个可注册、可调度、可计量的标准资源,而不是散落在各处的脚本。下一节看模型怎么升级不中断业务。
04 模型怎么调用和升级:不中断业务的全流程

注册→灰度→A/B→全量→回滚,每一步都有数据观察,不盲切。
4.1 调用:业务方只认能力名
业务方调用时只说"我要人员检测",算法平台根据版本策略决定用哪个模型:
|------------|----------------------|-----------|
| 版本策略 | 行为 | 适用 |
| stable(默认) | 用平台标记为稳定的版本 | 绝大多数业务场景 |
| latest | 用最新注册的版本 | 测试环境 |
| 指定版本 | 如 person_detect@v2.1 | 需要精确复现的场景 |
还支持摄像头级覆盖:某个特殊摄像头可以单独指定用某个版本,不影响全局。
4.2 灰度发布:先切一小撮摄像头
新模型注册后,不直接全量。先切 5% 的摄像头流量跑新模型,观察误报率、漏报率、推理延迟。指标正常再逐步扩大到 20%、50%、100%。边缘盒子通过 OTA 下发模型,热加载不重启业务。
4.3 A/B 对比:同一摄像头跑两个模型
对关键场景,可以让同一摄像头同时跑新旧两个模型(双路推理或影子模式),自动对比输出差异。比如新模型把"穿反光衣的人"误判成"未戴安全帽",A/B 对比能立刻发现。用数据而不是感觉决定是否全量。
4.4 影子模式:后台跑,不报警
更稳妥的做法是影子模式:新模型在后台跑,结果只记录不触发报警。跑一周,和旧模型的报警记录逐条对比,确认新模型没有引入新误报、也没有漏掉旧模型能抓到的事件,再切正式。
4.5 一键回滚:秒级切回
灰度过程中一旦发现误报飙升或延迟异常,一键切回旧版本。版本切换是配置级的,秒级生效,不需要重启服务。所有切换(谁、什么时候、从哪个版本到哪个版本、为什么)都有审计日志,出问题可追溯。
|--------|-------------|-------------|
| 阶段 | 做什么 | 观察指标 |
| 注册 | 新模型入库,标记为测试 | 加载是否成功、延迟基线 |
| 影子 | 后台跑,不报警 | 与旧模型输出差异率 |
| 灰度 5% | 小部分摄像头切流 | 误报率、漏报率、延迟 |
| 灰度 50% | 扩大范围 | 同上 + 算力占用 |
| 全量 | 标记为 stable | 持续监控 |
| 回滚 | 异常时秒级切回 | 恢复旧版本指标 |
所以呢? 模型升级不再是"停服务、换模型、祈祷没问题",而是一个有数据、有灰度、有退路的工程流程。下一节看业务平台怎么搭。
05 业务平台怎么搭:接入、编排、报警闭环
5.1 视频接入:把摄像头管起来
业务平台首先要解决"摄像头进来"的问题:
•多协议接入:RTSP、ONVIF、GB28181,兼容海康、大华、宇视等主流厂家;
•摄像头管理:注册、分组、标注地理位置和朝向、在线状态监控;
•流管理:统一拉流、按需分发、事件录像(报警前后 N 秒),不用 7×24 全量存。
5.2 场景编排:把算法配成业务规则
业务平台的核心是场景编排------把摄像头、算法、规则、动作配成一个可运行的场景,低代码配置,不用改代码。举个例子:
|---------------------------------------------------------------------------------------------------------------------------------------------|
| 大门夜间入侵场景 * 摄像头:1 号大门摄像头 * 算法:人员检测 + 车辆检测 * 规则:22:00--06:00 检测到人员或车辆 → 触发 * 动作:推送保安手机 + 抓图录像 + 联动声光报警器 + 门禁锁死 |
一个园区可以配几十上百个这样的场景,每个场景独立启停、独立配置。新场景上线不需要算法团队介入,业务人员在界面上拖配即可。
5.3 事件管理与报警闭环
算法输出的不是"报警",而是"事件"。业务平台把事件变成可处置的报警:
|------|--------------------------|
| 环节 | 做什么 |
| 事件入库 | 存截图、短视频片段、位置、时间、触发的算法版本 |
| 报警分级 | 一般 / 重要 / 紧急,不同级别走不同通知渠道 |
| 联动动作 | 推送、短信、声光、门禁、广播,按场景配置 |
| 处置闭环 | 报警 → 确认 → 处置 → 归档,全程可追溯 |
| 误报反馈 | 保安标记"误报",数据回流到算法平台用于模型优化 |
最后一条很关键:业务平台产生的误报数据,是算法平台模型迭代的燃料。两个平台通过数据回流形成闭环,而不是各干各的。
5.4 报表与可视化
•实时大屏:当前事件、摄像头在线率、各算法运行状态、算力占用;
•统计报表:按区域、类型、时间段统计报警量、处置率、误报率;
•趋势分析:哪些区域高发、哪类算法误报多,指导模型优化和摄像头补点。
**所以呢?**业务平台不存模型,它存的是"场景、规则、事件、处置"。算法平台负责"看得准",业务平台负责"用得起来"。
06 落地建议与常见坑
6.1 先搭哪个平台
建议先搭算法平台的骨架(模型仓 + 统一推理服务),再接 2--3 个核心算法跑通;同时业务平台先做视频接入和事件管理。两边并行,但业务平台的场景编排依赖算法平台暴露的能力接口,所以算法平台的接口要先定下来。
6.2 六个常见坑
|----------|-------------|----------------------------|
| 坑 | 后果 | 解法 |
| 每个算法一个服务 | 服务爆炸、资源争抢 | 统一推理引擎,动态加载模型 |
| 模型升级全量切 | 新模型有问题全园区遭殃 | 灰度 + 影子模式 + 一键回滚 |
| 边缘算力规划不足 | 路数一多就卡 | INT8 量化 + 动态抽帧 + 分时启停 |
| 误报数据不回流 | 模型永远在原地踏步 | 业务平台标记误报,算法平台用它迭代 |
| 摄像头协议不统一 | 接入一个厂家改一次代码 | 接入层做协议转换,统一输出 |
| 报警太多没人看 | 保安麻木,真报警被淹没 | 分级 + 降噪(同事件 N 秒内合并)+ 联动优先级 |
最后
智慧园区视觉系统的难点,从来不在某个模型有多准,而在几十种模型、几百路视频、持续迭代这件事能不能稳住。模型会过时,架构不会。
|----------------------------------------------------------------------------------------------------------------------------------------------------|
| 核心结论 :把系统拆成算法平台和业务平台两层------算法平台管模型的全生命周期(注册、推理、调度、灰度、回滚),业务平台管场景和事件(接入、编排、报警、报表),中间用统一能力接口解耦。再加上边缘盒子就近推理和误报数据回流,整个系统才能跟着园区一起长,而不是每加一个算法就重构一次。 |
模型会过时,架构不会。把模型的事交给算法平台,把场景的事交给业务平台。