Opencv 上身骨骼检测

Opencv 上身骨骼检测,opencv,emgucv,Opencv,Emgucv,对于一个教育项目,我们目前正在研究一个基本的运动和手势检测系统。我们的主要目标是在摄像机流中检测人体。利用这些信息,我们希望检测出人体的基本骨架,从而进一步检测出人体的姿势 我们正在使用EmguCV/OpenCV来处理我们的流。我在Youtube上找到了这个视频:。他能够探测到上半身并在其中放置一个基本骨架,但如何?他没有提到使用的任何算法 我们已经尝试使用背景减法(BackgroundSubtractorMOG2)来检测身体轮廓,但是相机噪音和闪电条件使我们失败了 有没有人有办法像视频中显示的

对于一个教育项目,我们目前正在研究一个基本的运动和手势检测系统。我们的主要目标是在摄像机流中检测人体。利用这些信息,我们希望检测出人体的基本骨架,从而进一步检测出人体的姿势

我们正在使用EmguCV/OpenCV来处理我们的流。我在Youtube上找到了这个视频:。他能够探测到上半身并在其中放置一个基本骨架,但如何?他没有提到使用的任何算法

我们已经尝试使用背景减法(BackgroundSubtractorMOG2)来检测身体轮廓,但是相机噪音和闪电条件使我们失败了


有没有人有办法像视频中显示的那样检测尸体?

我认为您应该实施以下步骤:

  • 检测人脸
  • 检测手
  • 估计身体图像的尺度
  • 使用头部位置放置上半身运动学模型(骨骼) 信息,并使用检测到的磁头大小设置其刻度
  • 将模型头和手与检测到的人体前位置相匹配 头和手
  • 更新模型的反向运动学以获得人体姿势估计
  • 我想,这应该是非常好的使用一些统计数据 滤波器,如粒子滤波器或卡尔曼滤波器
  • 转到步骤1
  • 运动模型可以使用一些2D物理内径(例如)。

    < P>将是一个很好的起点,在C++中实现了上体检测算法。 ()

    我喜欢这个“精益”解决方案,在线程中引用

    如果您想试用Matlab模型和VS,这里有一个历史性的示例

    更复杂的模型,包括Caffe等神经网络。。可通过Websearch->“人体姿势估计”找到,例如 在较新的操作系统上似乎不容易安装(较旧的编译器…?),而且有点资源匮乏(在我的旧1GB-HW上,它现在不会运行)


    最后,它可能会很有趣,它将如何上升或整合(到目前为止,它需要chrome,样本显示对象识别,但看起来很有希望)。

    如果您的项目是室内项目,人们将站在离摄像机较近的距离内,请尝试使用Kinect。它的SDK有一个与您想要的相同的示例代码。只需从头部检测开始,然后肩部检测就很容易了,因为它将是重角近似躯干的上边线。我认为上臂和下臂的检测仍然是矩形近似。但是为了区分这两种检测,他们也使用了颜色检测。我想这就是他为什么在下臂露出皮肤的原因。