如何从图像中提取物体?

2024-10-16 20:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个戴头盔的人的数据集。我想为头盔显示器制作一个面罩。下面是一个例子:

enter image description here

我需要为FOVE耳机制作一个面具。我尝试过语义分割模型。他们能够创建一个整体的人的轮廓,但不能单独的头盔。这是有道理的,因为FOVE不是他们模型中的一个类。我不能用FOVE示例重新训练模型,因为我没有任何掩码数据可以训练。所以我转向了图像处理方法。我尝试了聚类分割方法,并尝试了MeanShift算法、KMeans算法、图像阈值分割和graphcut算法。在

以下是我面临的问题:

  1. Mean-Shift集群:它创建了很多类(大于1000个)。我需要能够在不需要手动干预的情况下提取FOVE类,因为我需要处理大量数据(>;2000个图像)。我平滑了我的输入图像,减少了类的数量,但它也在FOVE HMD中创建了不同的类,这是由不同的亮度梯度造成的。而且,很多图像都有相似的背景,就像示例中一样。在这些情况下,均值偏移是混淆的。在

MeanShift Output

  1. 输出:低质量。它变得混乱和不准确。给定输出为k=10。在

KMeans Output

  1. 图像的阈值化:它可以创建一个很好的Fove轮廓,但我不知道如何使用它来提取HMD坐标。输出具有自适应阈值。在

Adaptive Thresholding output

  1. GrabCut:输出不好,需要人工干预。 编辑:GrabCut算法需要有一个非常接近面部的边界框作为输入。有2000个图像需要这个预处理,我无法手动做这个。使用常规的和较大的边界框时,精度会降低。我想尝试一些不需要手动输入的方法,如果可能的话,首先。在

GrabCut Output

请建议我可以做什么来创建头盔面罩。在

编辑: 这是我现在使用的。最麻烦的部分是背景,在我的数据集中,它有时只是比FOVE少一些白色的值,有时差别很大。我训练了一个语义分割网络来检测和提取图像中的人。作为参考,this和{a7}是在这个问题上所做的一些很好的工作。在此基础上,采用mean-shift算法对图像进行聚类和颜色阈值分割。这给了我大约90%的准确率,其余的图像需要一些调整(主要是颜色阈值)。在

Mask from semantic segmentation

Final Mask being created


Tags: 数据方法模型图像算法示例语义情况