检测填充的玻璃物体

信息处理 图像处理 opencv 物体识别
2021-12-30 13:56:44

我是从stackoverflow 中的这个问题发送到这里的,如果问题过于具体并且不符合这里的礼仪,请原谅:)

任务是找到一个装有特定液体的玻璃杯。让我向您展示图片,然后在图片下方的描述中描述我正在努力实现的目标以及到目前为止我是如何努力实现的。

图片:(似乎我需要至少 10 个声望才能发布图片和链接,所以链接必须这样做:(否则您可以查看堆栈溢出问题)

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

详细描述:我试图实现一种算法,该算法将在 opencv 中检测特定形状的玻璃(玻璃可能会通过不同的相机拍摄角度/距离进行变换)。还会有其他形状的眼镜。我正在寻找的玻璃杯也将装满一些有色液体,以将其与含有其他颜色的玻璃杯区分开来。

到目前为止,我已经尝试使用 SIFT 特征提取器来尝试在玻璃中找到一些特征,然后将它们与其他带有玻璃的照片进行匹配。

这种方法仅适用于非常特定的条件,即我将玻璃放在非常特定的位置,并且背景与学习图像相似。问题还在于玻璃是一个 3d 对象,我不知道如何从中提取特征(可能以某种方式链接的不同角度的多张照片?)。

现在我不知道我可以使用什么其他方法。我已经找到了一些线索(这里https://stackoverflow.com/questions/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338)但链接似乎已损坏。

另一个问题是在这种玻璃中检测不同的“空虚程度”,但我什至无法正确找到玻璃本身。

您对这项任务的方法有何建议?使用不同的方法来查找本地 3d 对象特征会更好吗?还是完全使用其他方法会更好?我听说过算法从一组多张照片中“学习”对象,但我在实践中从未见过这种情况。

任何建议将不胜感激

3个回答

您链接中引用的论文似乎是这篇论文。

特别感兴趣的是表 1(包括在下面)。准确率不是很高,尽管它们比其他方法要好。

在此处输入图像描述

也许这篇论文可以帮助你:http ://ai.stanford.edu/~ang/papers/iros09-ScalableLearningObjectDetectionGPU.pdf

尽管他们使用除了 2D 图像之外的主动立体系统来获取深度图像,但有趣的是他们如何使用基于补丁的特征,用许多小片段构建对象的字典,然后训练分类器。也许您可以添加此功能以提高检测率。

在面部识别软件方面已经做了很多工作。例如,如果您在 Facebook 上标记照片时注意到人脸的位置会被框起来并建议给您。

我已经看过很多关于使用神经网络在图像中进行面部识别的文献,快速的谷歌搜索无疑会找到大量关于这个主题的信息。这些网络将图像的像素作为输入。在您的情况下,不透明度变化/光线从玻璃反射的方式可能是网络将学习的良好识别特征。

一个问题可能是您必须用作训练数据的照片数量以及这些照片的预处理(即自己识别面孔)。如果要获得足够多的图像来训练你的网络是不可行的,那么你将不得不在学习阶段寻找一些捷径。这篇论文与你想做的事情有关:http ://www.ll.mit.edu/publications/journal/pdf/vol04_no2/4.2.5.neuralnetwork.pdf

幸运的是,这是一个非常活跃的领域,这类问题所需的大部分代码都可以在线获得。

一旦您能够识别图像中的眼镜,您就可以从那里进行进一步的分析。