【问题标题】:Background removal using Kinect: noise suppression around body shape使用 Kinect 去除背景:身体形状周围的噪声抑制
【发布时间】:2011-11-10 14:41:15
【问题描述】:

目标是在不同的背景上显示人物(也就是背景去除)。

我将 Kinect 与 Microsoft 的 Beta Kinect SDK 一起使用。在深度的帮助下,背景被过滤,我们只得到人的图像。

这很简单,我们可以在 Internet 上随处找到执行此操作的代码。但是,深度信号有噪声,我们得到的像素不属于显示的人。

我应用了一个边缘检测器来看看它是否有用,我目前得到了这个:

这是另一个没有边缘检测的:

我的问题是:我可以用什么方法去除人周围的这些嘈杂的白色像素?

我尝试了形态学操作,但身体的某些部位被擦除了,仍然留下白色像素。

算法不需要是实时的,我可以在按下“保存图像”按钮时应用它。

编辑 1:

我只是尝试用形状边框上最近的帧进行背景减法。您看到的单个像素在闪烁,这意味着它是噪声,我可以轻松消除它们。

编辑 2:

项目现在已经结束,这就是我们所做的:使用直接提供红外图像的 OpenNI 驱动程序手动校准 Kinect。结果确实很好,但每次校准都是针对每个 Kinect 的。

然后,我们在边框上应用了一点透明度,结果看起来非常棒!但是,我无法提供图片。

【问题讨论】:

  • 您可以在应用边缘检测器之前发布图像吗?
  • 对不起;我是在实习期间这样做的,现在无法再使用它了。

标签: image-processing kinect


【解决方案1】:

您的问题不仅仅是嘈杂的白色像素。你也错过了这个人的重要部分,例如。他右手的一部分。我建议您对深度数据的阈值设置更加保守(允许更多误报)。这会给你更多嘈杂的像素,但至少你会拥有整个人。

为了摆脱嘈杂的像素,我可以想到几件事:

  • 羽化外部像素(如果您使用 Alpha 通道,请降低它们的强度/增加它们的透明度)
  • 平滑图像,对平滑后的图像执行边缘检测,然后将这些边缘用于原始清晰图像。
  • 做一些皮肤区域检测来标记绝对属于一个人的部分。见skin detection in the YUV color space?Skin Color Detection
  • 对于衣服,使用色调和饱和度图像。如果您知道 T 恤的颜色(或者至少知道它不是中性色),那么这将很容易脱颖而出。如果您不知道这些信息,那么可能值得使用其他帧建立一个人的模型(如果您的视频中有一个大的灰色斑点在四处移动,那么您的拍摄对象很可能穿着灰色衬衫)

这些方法并不相互排斥,因此可能值得尝试将它们组合起来。如果我想到了什么,我会在这里回帖。

【讨论】:

  • 谢谢,我明天看看你的想法。关于失踪人员的部分,我无法控制它,因为我使用了 SDK 的人员检测。即使我编写了自己的版本,当深度信号非常嘈杂时也会发生这些错误,例如在手臂边缘或头发上。有时,在头部的某些部位,我的深度为 0,我无法轻易恢复。
【解决方案2】:

如果没有其他方法可以解决边缘抖动,您始终可以尝试将抗锯齿作为后期处理。

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多