目标:检测/确定人类行为,例如在商店中拿起/提起物品阅读标签并将其放回架子上的动作,坐在、登上/攀爬诸如椅子、长凳、梯子等物体上的动作。
环境:商店/商场,通常光线充足。摄像头(VGA -> 1MP),固定(即非PTZ)。
限制条件:
- 已知和未知人类的存在。
- 商店中物品(待售商品)可能在一段时间内重新排列。
- 随着时间的推移,光照可能发生变化。例如:商店的前区白天可能有充足的阳光,晚上则变为人造光。晚上也可能开启更多灯光。
问题:
-
虽然我知道OpenCV在人脸检测方面表现出色,并且可用于人脸识别,但它是否可以用于分析“动作”,例如坐下的动作、从架子上拿起物品的动作?如果可以,我应该深入研究哪些算法?
-
由于商店中的摄像头通常位于天花板高度,它们通常没有正面的人脸视图,而是主要是俯视视角。我了解到Haar Cascade(PCA)不太适用,但需要其他方法,例如3D头部几何确定。对于此类任务,是否需要使用OpenCV以外的其他库?是否有开源库可用于此目的?
回答:
时不时地,有些人来到这里寻求帮助(或者更确切地说,是寻求代码)来解决计算机视觉中一些最困难的研究问题。这些问题连最受尊敬的学术界和科学界人士都未能解决。有时,他们会询问他们在科幻电影中看到的算法。然后他们会因为OpenCV“不够友好”而感到沮丧地离开。
现在,认真地说,如果你是一群在图像处理领域拥有博士学位的人,正在进行一些天才项目,你不需要从这里获得建议。如果你不是,那么成功的几率真的很低。
在合理资源和准确度下,你可以做的是在商店中跟踪人们:使用移动平均背景减除器(OpenCV中可用)来确定空商店的外观,并从每一帧中减去该背景,以查看出现和消失的物体。你可以使用blob分析库提取它们。卡尔曼滤波器(或更简单的跟踪器)将帮助你跟踪移动的物体。
祝你好运!