如果你去商场、连锁门店、展馆这些地方做过客流项目,大概率听过运营方吐槽过同一句话:“你们这个系统怎么又把一个人数成三个人了?”这是传统2D摄像头客流统计最常见的翻车场景——早晚高峰顶光一打、浅色衣服和地面颜色一融、人贴着人排队,检测框就开始乱跳,数据自然没法用。后来我逐步把方案切换成“3D视觉+AI”的路线,才算是把这些问题压下去。这套思路这两年落地得很快,核心链路就是从Sensor Pipeline到数据事件引擎,把相机里的原始深度数据一步一步变成业务能直接消费的进出事件、区域热力、停留时长。
这篇文章没有太多学院派理论,更多是工程落地里的取舍。我会按我们自己真的在项目里走过的路径来写:先讲为什么选3D视觉而不是普通2D方案,再拆Sensor Pipeline怎么搭、AI推理层怎么设计,最后落到数据事件引擎——因为“数出来一个人”只是开始,让下游业务系统用起来才叫结束。适合正在做智慧零售、门店数字化、展馆管理的技术人员,也适合打算自建客流系统但还在方案调研阶段的同学参考。
1. 为什么客流系统选择了3D视觉这条技术路线
1.1 2D方案的核心痛点:光照、遮挡和“人的尺度”
传统2D摄像头客流系统,本质上依赖RGB图像里的人体检测和跟踪。单目相机没有深度信息,模型只能靠像素上的外观特征去猜距离和遮挡关系。在实际门店环境里,这件事极其脆弱。
我自己踩过的几个真实场景:
- 门店入口做的是玻璃幕墙,下午两三点太阳直射进来,RGB图像上一片过曝,人走进来就是一个白影,检测框直接丢失。
- 晚上打烊前灯光调暗,深色衣服的顾客和黑色背景墙融成一片,检测器把整个人“吞”掉。
- 排队高峰期,前后两个顾客身体重叠超过70%,单目跟踪器几乎必然发生ID Switch,同一个人的轨迹前半段算A、后半段算B,计数自然翻倍。
这些问题不是调参能解决的,而是传感器维度缺失导致的天花板。单目相机能拿到的是2D像素坐标,但在真实商铺里,我们要的是“这个人是不是真的跨过了这条线”“他在货架前站了多久”“他去的区域是哪块”这类具备空间语义的问题。没有深度信息,空间语义只能靠猜测。
1.2 3D传感方案的三种主流形态对比
3D视觉客流系统目前主流落在三种深度传感技术上:双目立体、结构光、ToF(飞行时间)。三者各有各的脾气,直接决定了你的Sensor Pipeline怎么写。
| 技术路线 | 成本 | 中远距离表现 | 光照敏感度 | 算力开销 | 适合场景 |
|---|---|---|---|---|---|
| 双目立体 | 中 | 依赖纹理,白墙场景拉胯 | 受光照影响较大 | 高(需要实时立体匹配) | 室内纹理丰富场景 |
| 结构光 | 中高 | 近距离精度高,远距离衰减快 | 强光下基本报废 | 中 | 近距精细建模,不太适合客流 |
| ToF | 中 | 距离范围广,精度够用 | 对环境光有一定容忍度,直射阳光会饱和 | 低 | 室内客流、仓储、展馆,目前最主流 |
客流项目我强烈建议优先评估ToF,尤其是顶装或斜顶装场景。原因是客流统计本质上需要的不是毫米级精度,而是“人在哪、往哪走、停留多久”这个粒度的空间信息,ToF在0.3米到8米这个区间内表现得相当稳定。它的分辨率确实不如RGB相机,但做行人级检测绰绰有余;而且ToF对纹理不敏感,白墙、玻璃、纯色地面这些让双目方案头疼的场景,ToF反而不太在乎。
结构光在客流里用得少,主要原因是有效距离短,通常两三米开外精度就崩了,而门店入口的监控区域动辄四五米深。双目最大的问题是算力——实时立体匹配非常吃资源,如果边缘盒子还要跑AI模型,很容易把算力预算撑爆。ToF这边深度图直接输出,省掉的这步预处理能省出大量CPU和内存。
1.3 选型前必须想清楚的两个约束:安装高度和视场角
很多团队一上来先挑相机型号,这是个顺序错误。选3D传感器之前,必须先想清楚物理安装条件,因为它决定型号、焦距、俯仰角、量程,整条Pipeline都跟着变。
客流场景一般有两种典型安装方式:
- 顶装:相机装在通道正上方,高度2.8米到3.5米,垂直向下或者接近垂直。这种方式的优势是俯视视角下人头和肩膀的轮廓非常清晰,遮挡最少,是计数最稳的方式。缺点是覆盖区域偏小,适合闸机口、单向通道这类窄区域。
- 斜顶装:装在墙角或者门头,往下倾斜45度到60度,覆盖面积大,能兼顾通道和部分店内区域。这种方式的缺点是斜视角度下人与人遮挡比较严重,对跟踪算法要求高。
选型时,根据安装高度和期望覆盖宽度,算一下需要的垂直视场角。以3.2米顶装、覆盖2.5米宽通道为例,视场角至少要在60度以上,否则边缘区域的人会被切掉半个头。还要特别注意ToF相机的量程下限——有些型号最近探测距离是0.4米,安装太高导致下方出现盲区,那就直接废了。
我自己常用的组合是:
