我想使用计算机视觉执行以下操作:

摄像机安装在建筑物外部,用于捕获下方街道的视频流。摄像机安装在距离街道约5-6米的位置。

每当照相机戴上戴着某种帽子(白色,圆形)的人时,都应触发一个事件。

我应该研究哪种算法来实现这种行为?

这是通过训练带有样本数据的算法来最好地实现,还是有另一种方法告诉它寻找这种帽子呢?

另外,如何使用多帧视频来提高检测质量?

编辑:添加了帽子的图片

最佳答案

在进行注释中的所有操作之前,我将在这里开始回答。

您发布的第一个link描述了一个简单的基于颜色的检测。您可以尝试这样做,但是如果图像中还有其他类似颜色的像素簇,它将失败。将其与跟踪结合起来的想法很好:识别聚类,在多个图像上建立轨迹,并且仅接受合理的轨迹作为命中点。为了进行可靠的跟踪,您可能需要研究Kalman filtering。您最有可能遇到的问题是,在您的相机提供的图像中,“白色”帽子几乎不会是“白色”。

您引用的第二个link-基于类似Haar的特征的增强分类器-用于检测更复杂的对象。它可能不会帮助您找到白色斑点。投资您的时间和精力来学习跟踪。

我很高兴在这里重复我自己:“解决计算机视觉问题”与“对数组进行排序”不同。 OpenCV不是C++标准库。您可以使用std::map而无需了解红黑树。但是(IMHO)在不了解大量数学和theory的情况下,您无法使用Vision API。可行的解决方案计算机视觉通常会针对特定的问题场景进行大量调整。抱歉,这听起来很古怪,但这可以解释您的问题为何遭到殴打。

关于opencv - 使用OpenCV查找戴着帽子的人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15204391/

10-11 16:15