【问题标题】:Arrow recognition in video视频中的箭头识别
【发布时间】:2014-07-16 22:20:11
【问题描述】:

我想创建一个程序,可以识别视频源中的箭头并确定它们指向的方向(左或右)。我的目标是将此程序与 arduino 机器人一起使用,以确定机器人应该移动的方向。

我的问题是使用哪种方法。我已将选择范围缩小到模板匹配或 SURF。模板匹配很好,因为它与旋转无关,因此可以确定左右箭头。但是,由于机器人将移动,模板箭头的大小可能不等于视频源的大小,从而导致不匹配。

SURF 解决了这个问题,但它是旋转不变的。这意味着左箭头和右箭头将被视为同一事物。

谁能推荐一个我可以用于这个程序的方法。

提前感谢您的帮助

P.S 我将使用 OpenCV 来实现。

【问题讨论】:

  • 大声笑,是的。困境。模板匹配带有许多其他缺陷,例如对投影/缩放/剪切敏感(您的机器人安装的凸轮将附带所有 3 个),因此您可以安全地丢弃它。那么可能是 findContours/matchshapes 方法?
  • 查看答案here
  • 感谢您的 cmets。我正在使用您建议的轮廓方法。虽然我还没有得到任何好的结果,但我离解决问题更近了。到目前为止,我已经设法过滤掉图像中多余的对象并只保留箭头。我现在正在尝试按照您的建议执行角度提取。再次感谢

标签: opencv surf vision template-matching


【解决方案1】:

我设法通过使用 canny 边缘检测和 HoughLinesP 解决了这个问题。该系统运行良好,但旋转范围有限,无法正确检测方向(大约 15 度)。

基本上我首先进行颜色检测来检测箭头,然后使用 houghlinesp 找到它的轮廓。在这些行中,我消除了所有水平或垂直的行,只留下尖端的行,如红色所示。然后我用每条线的端点来确定方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2011-05-07
    • 2011-06-29
    • 2021-06-25
    • 2014-11-15
    相关资源
    最近更新 更多