Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 检测身体/面部并移除背景_Image Processing - Fatal编程技术网

Image processing 检测身体/面部并移除背景

Image processing 检测身体/面部并移除背景,image-processing,Image Processing,我的客户要求这样做,因为我们没有任何图像处理算法的经验,也没有兴趣深入研究它,我想我会看看以前是否有类似的做法。也许是一个框架或者类似的东西 他们想要的是用户给自己拍一张照片,然后图片中除了自己以外的任何东西都会被背景图像所取代。因此,他们可以简单地在巴哈马或诸如此类的地方创造自己的形象 我们可以假设每张照片中只有一个人。我们需要的基本上是一个函数,它获取图像,并返回人物在图像中的位置的掩码。我一直在谷歌上搜索答案,我发现了很多人脸识别框架,但它们都只是为了检测一张脸并给出它的位置。没有掩盖整个

我的客户要求这样做,因为我们没有任何图像处理算法的经验,也没有兴趣深入研究它,我想我会看看以前是否有类似的做法。也许是一个框架或者类似的东西

他们想要的是用户给自己拍一张照片,然后图片中除了自己以外的任何东西都会被背景图像所取代。因此,他们可以简单地在巴哈马或诸如此类的地方创造自己的形象

我们可以假设每张照片中只有一个人。我们需要的基本上是一个函数,它获取图像,并返回人物在图像中的位置的掩码。我一直在谷歌上搜索答案,我发现了很多人脸识别框架,但它们都只是为了检测一张脸并给出它的位置。没有掩盖整个人


语言?客户端还是服务器端?几乎所有能起作用的东西

你所要求的是一个非常棘手的问题。考虑到背景可能会很嘈杂或复杂,甚至会与人混在一起。当然-在添加了背景为平面、单色以及图像亮度均匀的约束后,您可以使用。

在我的Nexus上,相机有一个功能可以满足您的需要

它似乎这样做的方式是,它首先获取一个用户的图像,而不是在屏幕上,并保存该图像。然后,它再次开始捕捉,任何不变的像素都会被新选择的背景所取代。任何不同的像素都被假定为人物,并在新捕获中保持原样


这类似于anathonline指出的色度键控,但除了用所需背景替换所有绿色像素外,还可以用所需背景替换所有保持不变的像素。

在这种情况下,我建议不要执行客户端请求,因为你没有兴趣知道你在用什么,这是图像处理的关键一步。据说,Viola Jones是一种常用的人脸检测方法。全自动身体检测通常要复杂得多,对于对任务不感兴趣的人来说是不可接近的。这被称为背景减法,它可以节省一些案例,为给定的应用程序产生可怕的结果。是的,但它使用起来相当简单,并且可以在比色度键控更多的情况下工作。如果相机保持稳定,它将能够产生合理的结果。归根结底,关键在于客户愿意接受什么,以接近他们想要的。需要保持稳定的不仅仅是摄像头,整个环境也需要冻结。你不能要求自然作为一个整体冻结,所以你至少有轻微的照明变化,这可能会引入阴影和其他问题。我认为你应该能够克服环境中的微小变化。您可以做一些简单的事情,比如添加阈值。绿色屏幕也会有同样的阴影问题,这不算问题。对于较小的运动变化,例如在风穿过树木移动树叶时,您可以尝试获取平均位置,并将其与原始图像进行比较,或者获取几个基础图像进行比较。然后你可以忽略一切,除了主要的三角洲。你把事情简化得太多了,在一个开放的环境中没有机会真正克服缺点。色度键控的工作原理很简单,因为它通常应用于非常受控的情况,基本上是完美的条件。现在,即使在相同的条件下,简单的背景减法也可能失败,因为当主体发生在场景中时,它会改变先前获得的背景。你可以在这里应用启发式,但它们是启发式的。