如何在没有边界框但只有 2 个端点和方向的情况下检测薄物体(如钢笔和铅笔)?

人工智能 卷积神经网络 计算机视觉 物体检测 约洛 模型请求
2021-11-11 13:17:20

我正在寻找检测薄物体,如钢笔、铅笔和手术器械。边界框并不重要,但我正在寻找是否可以训练模型来检测对象及其方向。

典型的对象检测网络,如 R-CNN、YOLO 和 SSD 对类名和边界框进行编码。而不是边界框,我希望只编码 2 个点,一个开始X,是的一点一结局X,是的观点。物体的起点是人们抓住物体的地方。例如:

  • 铅笔橡皮擦(起点)指向右上角 50 度。
  • 手术器械与 x 轴成 10 度角,手柄指向右下方。
  • 笔尖(端点)垂直向上。
  • 叉子,起点是把手部分,终点是 4 个叉子所在的中间。

只要我可以编码起点和终点,我就可以确定方向。我需要在训练期间定义这些点。

问题是我是否可以在其中编码这些信息的现有模型(移动网络/inception/RCNN)?我想的一种可能的方法是使用 YOLO 和左上角的边界框X,是的将是起点X,是的(句柄),而边界框的宽度和高度将替换为端点X,是的(铅笔笔尖,叉尖。

2个回答

最近的工作实现了类似的任务:对象识别和边界框(例如YOLO --- Github 上也有很多)。在您的情况下,边界框还不够,但它是一个有趣的模式:识别加上某种形式的测量。这样的架构可能是一个很好的起点,并重新用于定向。

该问题还可以利用当前在步态识别方面的结果。事实上,这看起来比对象识别更接近手头的问题。一个例子是这个基于多视图(多图片输入)识别的模型,在 Github 上有一个演示步态识别现在也很流行,并且有许多鼓舞人心的论文和 OSS 实现。

以上介绍了您的问题可以从中受益的两种方法,作为“组合”。我的直觉是倾斜和方向可能比方向更容易(即尖端在哪里?)。


这个问题需要训练一个模型。另一种方法可能是开始并获得更多洞察力,可能是使用“标准”计算机视觉算法,例如霍夫变换这种变换允许在图像中找到线条。数学已经触手可及,它可以很好地用于快速演示。此外,您的句柄名称暗示“嵌入式移动”工程师,简单的霍夫变换在移动设备上可能很便宜。

您可以使用任何具有与图像输入分辨率(例如来自语义分割)相同的输出分辨率的完全卷积网络作为主干。

然后

解决方案 1:您可以将最后一层调整为具有 4 个特征图,其中前 2 个图表示点 1 存在或不存在的概率。最后 2 个图表示点 2 存在或不存在的概率。然后,这将为您提供这些点存在的热图。在这里,您还应该进行非最大抑制以仅获得单个可能点而不是区域。此外,您只需要分别在每 2 个点上正确应用 softmax 函数。或者使用一个 sigmoid 层,你只解决一个二元问题并使用 2 个特征图而不是 4 个。

解决方案 2:如果没有明确的物理/唯一解释,应将哪个点视为点 1,将哪个点视为点 2,则解决方案 1 可能有问题,因为您强制模型对此做出决定(通过专用点 1 和点2 个特征图),这实际上是不可能的。

在这种情况下,您可以执行以下方法:

使用 4 个特征图,其中前两个图表示一般点存在或不存在的概率。然后使用最后 2 个映射来表示指向相应其他点的归一化 x/y 向量。然后,您可以通过查看它们的回归向量是否指向彼此来过滤掉相应的点。(这有点相似,并适应了中心点网络的作用)。这里只有前 2 层应该是 sigmoid,最后 2 层是回归层,但要归一化。这里也应该做非最大抑制,只过滤掉单点。

这两种方法都具有完全卷积的良好特性,因此具有平移不变性。例如,这意味着您可以轻松地将其调整为其他图像分辨率。