我应该使用哪种模型(仅)在图像中查找对象位置(以坐标表示)?

人工智能 神经网络 机器学习 计算机视觉 物体识别 模型请求
2021-11-04 22:59:09

我正在生成由点组成的图像,其中对象的位置是点重叠最多的地方。

生成的图像示例

在此示例中,对象位置为(25,51).

我正在尝试训练一个模型来找到位置,所以我不关心对象的分类。此外,对象所在的重叠点的形状永远不会改变,并且永远是那个形状。

什么是这个目标的好模型?

我一直在研究的许多潜在模型(CNN、YOLO 和 R-CNN)更关注分类而不是位置。我是否应该在图像中搜索重叠的点,在它们周围创建一个绑定框,然后检索框的坐标?

2个回答

什么是这个目标的好模型?

我将尝试给出另一个观点:在没有机器学习模型的情况下解决它

您的问题是尝试找到最重叠的点。如果上图是您在案例中使用的图像,您可以通过应用一些计算机视觉算法直接解决它。

  1. 尝试根据点的颜色创建一些二进制图像。如果您不确定图像上的可用颜色,您可以首先列出不是黑白唯一的像素颜色。因此,如果有四种颜色,则需要生成四个不同的二进制图像。创建一个简单的条件或一个复杂的条件,例如:

    if pixel[i,j]=red then
        pixel[i,j]=white
    else
        pixel[i,j]=black
    
  2. 通过在图像上搜索“白色”或使用斑点检测方法来获取其位置(如果实际图像始终具有不同的轴比例,这将有点棘手)。您可以将其保存为每种颜色的坐标列表。

  3. 如果您无法完全看到该点,因为它与另一个点重叠,会发生什么?找到模式。在您的图像中,点以某种模式出现。如果你能在水平和垂直方向上找到两个连续的点,你就可以预测所有点的位置。
  4. 从您的列表中找到最重叠的位置。

优点

  • 结果可能比使用机器学习模型更准确
  • 更快,你不需要先训练它

缺点

  • 在不同轴的图像中找到点的位置会很困难,但它仍然可以解决
  • 如果由于与其他点重叠而丢失了许多点,则很难预测模式

神经网络不仅用于分类,还用于回归CNN 似乎是解决这个问题的一个很好的解决方案,它有 2 个输出神经元,每个神经元都提供一个在你的帧范围内的数字。