【问题标题】:Extract correct contours in Laplacian Edge Images在拉普拉斯边缘图像中提取正确的轮廓
【发布时间】:2020-05-10 20:15:24
【问题描述】:

盯着看起来像这样的框架:

我正在使用 BackgroundSubtractorMOG2 来检测帧中的运动并提取我使用双文字过滤器和 equalizeHist 以及后记应用拉普拉斯算子和阈值处理的感兴趣区域。

在应用不同的图像过滤器后,我通过阈值获得了合理的拉普拉斯边缘和嘈杂的蒙版,如下所示:

但是,我不确定现在如何提取对象的正确轮廓(左上角)来分割它。

【问题讨论】:

  • 请添加您的代码
  • 您可以尝试帧减法而不是背景减法: thresh(abs(frame_n-1 - frame_n)) && thresh(abs(frame_n - frame_n+1)) 通常可以为移动对象提供良好的结果。如果将其与跟踪结合使用,即使鼠标保持静止,您也应该能够拥有鼠标。

标签: opencv computer-vision object-detection image-segmentation vision


【解决方案1】:

这比最初看起来要复杂。我的解决方案是为此任务训练一个网络。如果要对鼠标进行分段,则必须从不同的上下文中收集数百张图片。也许 100 已经可以给你一个令人满意的结果。我会使用迁移学习(这意味着使用已经用其他数据训练过的网络)。使用以下存储库并没有那么复杂:https://github.com/qubvel/segmentation_models 对于数据增强,我会使用 imgaug: https://imgaug.readthedocs.io/en/latest/

如果解决方案不使用深度,您可以使用纹理分析。我会为此使用 Gabor 分解,您可能会看到背景纹理和鼠标之间的差异。然而,神经网络似乎更简单,也是一种更流行的学习技术。

您还应该考虑购买新的成像设备和/或红外线投影仪,如果这就是您对比度如此低的原因。只有 Raspberry PI 的 IR 摄像头与这些相比,您才能获得令人难以置信的图像,并且您的检测可能无需任何更改即可工作。

【讨论】:

  • 是的,它只是一个大学项目,所以我们不应该使用深度学习,而且数据也给出了。但感谢纹理分析方面的建议
  • 能否添加左上角的原图?
【解决方案2】:

您可以尝试使用 opencv 训练一个 Haar 级联来检测鼠标。

这通常用于视频中的人脸识别/物体识别 - 看起来很有效。

您可以在此处查看有关如何操作的有用问答:

How to create Haar Cascade (.xml file) to use in OpenCV?

正如另一个答案中提到的,迁移学习不再繁重。你只需要训练数据——Haar 也需要。否则你将不得不模拟它。

您甚至可以考虑将鼠标模板化 ?

【讨论】:

  • 好主意,如果 Gabor 分解不起作用,我会看看它
猜你喜欢
  • 2020-12-23
  • 1970-01-01
  • 2012-04-25
  • 2014-03-29
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 2018-11-20
相关资源
最近更新 更多