【问题标题】:Using Hough Transform in robot navigation在机器人导航中使用霍夫变换
【发布时间】:2013-03-18 05:12:20
【问题描述】:

我的目标是让自主机器人使用摄像头在有围墙的迷宫中导航。摄像头固定在机器人顶部并朝下,以便能够从上方查看墙壁和机器人。

根据我的经验,我采取的最直接的方法是

  1. 对图像设置阈值以提取红墙
  2. 执行 Canny 边缘检测
  3. 使用霍夫变换从边缘检测强线

经过一些参数调整后如下所示

我想让机器人向前移动并避免“撞到”红墙。问题是从霍夫变换中每个墙边缘检测到多条线。我的一个想法是执行 k-means 聚类以对线条进行聚类并找到每个聚类的中心(均值),但我不知道墙边的数量(因此不知道要输入 k-means 算法的聚类数量) 我将随时在迷宫中导航(前方、后方、多圈交叉路口等)。

如果您能找到一种好的方法来获得一致的墙壁位置,以便将机器人的位置(在每个图像帧中始终固定)与在迷宫导航中的任何时间进行比较,我们将不胜感激。我也对解决此问题的任何其他方法持开放态度。

【问题讨论】:

  • 在我看来,显而易见的方法似乎只是丢弃任何找到的线,如果它们在方向和位置上接近更强的线,即遍历线列表并丢弃任何与之前的线相似的线.不需要对它们进行聚类,特别是因为这些行都有不同的置信度,如果你使用 opencv hough 变换,你不知道这些,只知道它们的相对顺序

标签: opencv hough-transform


【解决方案1】:

在提取 HoughLines 之前运行 skeletonization 算法。

【讨论】:

  • 研究了骨架化,这应该有助于限制边缘需要执行霍夫变换。您是否有任何关于如何在 OpenCV 中实时实现此功能的参考(任何优化版本?)我在这里找到了这个felix.abecassis.me/2011/09/opencv-morphological-skeleton,但发现它并没有像我想要的那样针对实时进行优化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 2014-01-02
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
相关资源
最近更新 更多