视频客流统计本质上不是“认识人”,而是对视频流中的“人体目标”进行检测、跟踪与轨迹分析,再通过规则或模型完成计数与行为判定。系统不关心身份,只关心“这个目标是不是人、从哪里来、去了哪里”。
整个流程可以拆成四层:视频输入层、人体检测层、目标跟踪层、计数与分析层。
一、系统整体架构
一个典型的视频客流统计系统结构如下:
摄像头采集
↓
视频流编码(RTSP/ONVIF)
↓
AI推理服务(GPU/边缘计算盒)
↓
人体检测模型(Person Detection)
↓
多目标跟踪(MOT)
↓
虚拟线/区域规则引擎
↓
客流数据输出(进/出/停留/热力)
部署形态一般分三种:
边缘端(Edge AI盒):就地处理,延迟低,适合门店
本地服务器(On-Premise):多路摄像头集中分析
云端分析(Cloud AI):用于跨门店汇总与建模
二、第一步:人体检测(Detection)
核心任务:在每一帧图像中找到“人”。
1. 输入
视频被拆成连续帧(通常 10–25 FPS)。
2. 模型输出
常见检测模型输出:
bounding box(目标框)
confidence score(置信度)
class label(person)
典型模型:
YOLO 系列(YOLOv5 / YOLOv8)
SSD
Faster R-CNN(较少用于实时)
3. 关键技术指标
指标说明常见范围
检测准确率(mAP)人体识别准确性85%–97%
推理延迟单帧处理时间10–50ms
误检率非人被识别为人<3%(优化后)
4. 难点
逆光与强光
遮挡(人群密集)
小目标(远距离)
三、第二步:多目标跟踪(MOT)
检测只能得到“每一帧的人”,无法知道“是不是同一个人”。
跟踪层的作用是:给每个检测到的人分配唯一 ID,并在连续帧中保持一致。
1. 基本逻辑
Frame 1: Person A → ID 12
Frame 2: Person A → ID 12(保持)
Frame 3: Person A → ID 12(继续)
2. 常见算法组合
Kalman Filter(运动预测)
Hungarian Algorithm(匹配分配)
DeepSORT(加入外观特征)
ByteTrack(提升遮挡场景稳定性)
3. 关键输入特征
位置(x, y, w, h)
速度向量
外观特征(Re-ID embedding)
4. 技术指标
指标含义典型值
ID SwitchID是否切换错误越低越好
MOTA跟踪综合准确率70%–90%
FPS稳定性多路视频处理能力8–32路/设备
四、第三步:虚拟规则与客流判定
这一层才是“客流统计”的核心业务逻辑。
1. 虚拟线(Line Crossing)
最常见方法:在视频中画一条“进出线”。
逻辑:
人体轨迹穿过线 → 触发计数
方向判断 → 进入 or 离开
判断方式:
if trajectory crosses line from A→B:
IN += 1
else:
OUT += 1
2. 区域统计(Zone Analytics)
用于更复杂场景:
店内停留人数
收银区拥堵
展厅热区
逻辑:
人体中心点进入 ROI 区域
停留时间累计
五、第四步:客流数据建模
在完成“人 + 轨迹 + 规则”之后,系统输出结构化数据。
1. 基础指标
进店人数(Entries)
出店人数(Exits)
在店人数(Occupancy)
停留时长(Dwell Time)
2. 派生指标
转化率(需对接POS)
峰值时段分布
区域热力图
人流密度
六、关键工程问题
1. 遮挡问题
人群密集时,检测框会重叠,导致 ID 丢失。
解决方案:
Re-ID 特征增强
ByteTrack 高置信度优先策略
多摄像头融合(Re-ID Matching)
2. 摄像头角度问题
不同安装角度直接影响误差:
安装方式误差水平
正顶视(90°)最低
斜视(30°–60°)中等
平视误差较高
3. 光照变化
HDR摄像头
自适应曝光
夜间IR补光
4. 实时性要求
典型系统约束:
延迟 < 300ms(门店级)
FPS ≥ 15(稳定计数)
连续运行 7×24h
七、边缘计算 vs 云端
边缘计算
优点:
延迟低
不依赖网络
数据隐私强
缺点:
算力有限
模型更新成本高
云端
优点:
易扩展
多门店统一分析
模型迭代快
缺点:
网络依赖强
视频上传成本高
八、本质总结
视频客流统计的核心不是“识别身份”,而是:
从视频中找出“人”
在时间维度上连接这些人
判断行为是否跨越规则边界
将连续行为转成结构化数据
整个系统可以简化为一句话:
用视觉模型做检测,用时序算法做跟踪,用规则系统做计数。