0

我对如何实现我的目标有一些怀疑。我有一个正在录制人物的外部相机,我想为每个人画一个椭圆。在OpenCV上使用期望最大化的人画椭圆

现在我要做的就是从框架得到了人们的特征点(我让他们使用掩模只对人的特征点),设置了EM算法和我的样本训练它(特征点提取)。簇的数量是图像中人数的两倍(我在使用其他方法(例如使用码本进行像素计算)启动EM算法之前得到它)。

我的问题是

  • (一)我必须只训练它仅在第一帧,然后用下面的帧预测?或者,(b)在每一帧中使用具有特征点的列车?

现在我正在做选项b)(我不使用预测),因为我真的不知道如何使用预测。

如果我做了a),你能帮我一下吗?之后如何绘制椭圆?如果我做b),你能帮我为每个人画一个椭圆吗?因为我知道我使用cov,mean等为同一个人得到了不同的椭圆(例如,一个用于手臂)。

我想实现的是本文采用高斯模型:http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5580105&tag=1&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5580105%26tag%3D1

+2

如果要绘制边界框而不是椭圆,可以使用函数groupRectanlges进行合并不同的边界框。 但是,更重要的是 - 为什么不使用openCV的人体探测器(基于HOG)或潜在的svm探测器与人体模型? – GilLevi

+0

感谢您的回复。我真的不知道这些条款是什么,但我肯定会研究它。使用我在上面解释的一点是因为我会在非常人群环境中(例如购物中心,时代广场等)检测人,并且在获得特征点之后,我将绘制通过这些特征点的垂直椭圆。我会回来,如果我不明白你说的,谢谢 –

+0

好吧,所以我会正确回答我的意见。 – GilLevi

回答

1

如果你想画边界框,而不是省略号,你可以使用函数groupRectanlges合并不同的边框。

但是,更重要的是 - 对于人员检测,您可以简单地将openCV的人员检测器(基于HOG)或潜在的svm检测器与人员模型一起使用。

0

无论如何,你应该做b),否则你会尝试将关键点与第一帧中的簇(人员)相匹配。几秒钟后,这将不相关。

假设从帧到帧的变化不会是压倒性的,因此重用帧N-1上的训练结果是在帧N上训练的好种子,可能会更快地收敛EM在每个框架上从头开始。

为了吸引你可以从高斯例子的混合物在Python绑定利用省略号:

https://github.com/opencv/opencv/blob/master/samples/python/gaussian_mix.py

注意,如果您使用的是对角线协方差矩阵,你的椭圆将要对准“直线“,它们自己的轴线与框架的X轴和Y轴对齐,您可以跳过椭圆角度的计算