algorithm - 基于运动的人体检测

标签 algorithm opencv image-processing computer-vision artificial-intelligence

我是图像处理和计算机视觉领域的新手。最近我正在尝试使用运动检测来检测视频中的人物。

我正在使用这个 dataset这是它的Technical Report .

好吧,我正在尝试使用背景减法来检测人类。我假设第一帧作为背景并从背景中减去其他帧,然后我对减去的图像设置阈值以将其二值化。只有当背景和前景具有完全不同的颜色强度值时,它才能正常工作。

但是有些地方前景(移动的人)和背景(那个地方的椅子)颜色相同,所以减法值变得非常小,并且没有正确检测到人,结果将其分为上半部分和下半部分。如下所示 Splitted Image

也如Technical Report中所述第 5 页,视频高度压缩和其他段错误。这使得很难检测到前景人物。

我正在尝试在线查找解决方案,但可用的研究论文过于简洁,以至于我无法理解其中的含义。

非常感谢任何帮助。

编辑 1

正如 npinti 在评论中建议我尝试凸包,所以我尝试在下面的 blob 图像上做

enter image description here

它首先将图像分成小的连接的 Blob ,然后将它们连接起来,如下图所示

这是腿部

leg part

这是左手

Left Hand

和其他 3 张小图片。但我的问题是将这些全身部位连接起来,使其成为一个完整的团 block 。

引用

  1. E。 Auvinet、C. Rougier、J.Meunier、A. St-Arnaud、J. Rousseau、 “多个摄像头坠落数据集”,技术报告 1350,DIRO - 蒙特利尔大学,2010 年 7 月。

最佳答案

一旦你有了 body 部位的 Blob ,就得到它们的边界框并合并彼此接触或足够接近的框。

要合并盒子,只需创建一个完全包含其他盒子的盒子:minX=min(minX of all other boxes), maxX=max(maxX of all other boxes) ...

关于algorithm - 基于运动的人体检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425246/

相关文章:

c - OpenCV cvCanny 内存异常

javascript - 转换数字显示格式

c# - 如何用空格字符替换无数字字符?

algorithm - 界交点

Python3 - 在饥饿的狼之间分配口粮的最佳方式是什么?

c++ - 带有 QConcurrent::run 的 QMutex 没有按预期工作?

opencv - 比较opencv中的颜色配置文件

c++ - 检索由 cvApproxPoly() 创建的多边形的点

python - 使用 Surf 和 Perspective Transform 获取图像相对于基本图像的方向

php - 通过电子邮件发送动态创建的图像