首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跟踪的好功能?AR无人机2

跟踪的好功能?AR无人机2
EN

Stack Overflow用户
提问于 2016-02-27 17:10:47
回答 3查看 473关注 0票数 2

我试图实现对象跟踪从相机(只是一个相机,没有Z信息)。相机有720*1280分辨率,但为了更快的处理,我通常会将它重放到360*640。

这个跟踪是通过机器人摄像机完成的,我想要一个尽可能健壮的系统。

我将列出我迄今所做的工作和结果。

  1. 我尝试做颜色跟踪,将图像转换为hsv颜色空间,进行阈值化,进行形态学变换,然后找到面积最大的物体。这种方法对目标进行了公平的跟踪,除非没有其他颜色相同的物体。当我在寻找最大的物体时,如果还有比我需要的更大的物体,机器人就会走向更大的物体。
  2. 然后,我决定跟踪圆圈物体的特定颜色。然而,在不同的角度下很难找到。
  3. 然后,我决定跟踪正方形物体的特定颜色。我用这个

// Approximate contour with accuracy proportional // to the contour perimeter cv::approxPolyDP( cv::Mat(contours[i]), approx, cv::arcLength(cv::Mat(contours[i]), true) \* 0.02, true );

然后我检查了这个条件

if (approx.size() >= 4 && approx.size() <= 6)

后来我检查了一下

固体> 0.85,宽径比在0.85和1.15之间

但结果仍然不如我预期的那么强劲,尤其是规模。如果有几个方块,它就找不到所需的。

所以,现在我需要一些建议,比如我可以使用对象的其他特性来改进跟踪,以及如何改进跟踪?正如我多次提到的,主要问题之一是大小。我知道物体的大小。然而,我不知道如何利用它,因为我不知道物体与照相机的距离,这就是为什么我不知道如何用像素表示来表示物体的大小,这样我就可以消除任何其他不属于这个范围的斑点。

更新

在第三步,我描述了如何检测特定颜色的方块。下面是我得到的例子。

我用这个HSV范围来表示红色:

标量(250,129,0),标量( 255,255,255),与OpenCV的inRange函数的参数 HMIN = 250,HMAX = 255;SMIN = 129,SMAX = 255;VMIN = 0,VMAX = 255;(希望看到您关于调整此值的建议)

所以,在这张图片中,你可以看到处理过程,高斯模糊(5*5),形态学闭合两次(5*5)。标有“结果”标签的图像显示跟踪对象(请查看绿色方块)。

在第二帧中,您可以看到它无法检测到“红色方格”。这两张照片唯一的主要区别是我把笔记本电脑的盖子弯了下来(如果你没注意到的话,请仔细看一下)。我认为这是因为illumination,,这会导致阈值产生不想要的结果。

唯一的办法,我能想到的是做两个单独的图像处理。首先,像我上面所做的那样,根据颜色进行阈值处理。如果我找到要移动到下一个帧的对象。如果不使用这个opencv的查找方方法。

然而,这种方法需要对图像进行过多的处理。

EN

回答 3

Stack Overflow用户

发布于 2016-02-29 22:48:15

如果有一个模板是目标对象图像的图像,则尝试使用与SIFT或SURF匹配的特征。https://www.youtube.com/watch?v=ZXn69V-1kEM

intro.html

注1:您可以在灰度中使用特征匹配,这样可以缩短处理时间。

注2:您可以尝试其他的回归方法,例如人工神经网络,而不是RANSAC。

票数 0
EN

Stack Overflow用户

发布于 2016-03-01 20:25:16

正如您在您的要求中提到的,您只需要跟踪一个平面区域,这是一个红色。因此,您已经有两个用于跟踪目的的特性:

  • 平区
  • 红颜色

下面是这样一种算法:

  • 检测区域的图像计算方差中的平坦区域。方差低的区域很可能是平坦的区域。
  • 如果其色调值接近红色,则将其归类为感兴趣的对象。
  • 然后从相邻像素进行投票,得到对象的精确二进制映射。

您可以尝试的另一件事是对哈里斯角探测器进行调整:Harris角探测器

在Harris角检测器中,利用2×2矩阵的特征值确定分数。如果这两个特征值都很小,那就意味着它是一个平坦的区域。在本OpenCV教程中解释得很好。然后,您可以使用颜色信息细化识别的平面区域。它应该合理地处理透视图转换。

票数 0
EN

Stack Overflow用户

发布于 2016-03-04 03:08:52

如果你重新考虑你的第二点,寻找圆圈的物体,你实际上应该寻找椭圆,因为它与物体的角度。为了检测图片中的椭圆,我复制了的“实用OpenCV”一书中的代码(你应该可以在谷歌上找到)。所用算法的理论是:all.jsp?arnumber=765658

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35672762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档