1

这是我在这里的第一篇文章,大家好。

我正在从事一个项目,该项目涉及用 c++ 或 python 编写一个程序,该程序将检测障碍物并将用于 AR.Drone 2.0。但是,我不知道我应该采取哪种方法。

最初,我被建议使用 opencv 和光流。我找到了一些关于它的视频和论文,一种方法是:将 AR.Drone 相机的每一帧划分为 2(左/右侧)或 4(另外是上下),并计算每个部分的光流。然后,向光流较少的方向飞行。

但是我对此有一些疑问:

1)我应该使用哪种光流计算方法?我知道在 opencv 中提供了计算密集或稀疏光流的方法。在这个应用程序中我应该选择哪一个?密集的光流会不会太慢而无法满足实时要求?

2)我猜当无人机左右或上下移动时,我会得到一些由无人机移动引起的“假”矢量,而不是因为迫在眉睫的障碍物。如何防止这种情况?

另一个解决方案告诉我这里显示的一种方法(描述中的论文链接)和实现它的人github 链接但是作者承认他“从来没有让障碍物检测在无人机上正常工作”。

有人告诉我的另一个选择是将实感摄像头连接到无人机上,并以某种方式使用它提取有关障碍物的信息。

所以,我的问题是——我应该走哪条路?或者是否有其他方法可以适用于我描述的应用程序并且相对容易实现?

提前感谢您的每一个回复。

4

2 回答 2

0

我不确定你的项目的范围,无论是学术还是专业,但我的建议是使用控制图像的对象检测,摄像头直接面向无人机前方。如果检测到物体,您可以根据它的大小估计它与无人机的距离。因为它是一个控制图像,所以它应该有一个恒定的大小,并且你应该记录有多少像素在你的相机的不同距离处。这样你就可以建立一个模型。一旦你知道物体有多远,你就可以确定它是否是障碍物。

一旦检测变得足够大,确定它是否在飞行路径中。然后移动无人机,使检测框的坐标不再在您的飞行路径中。

对于检测,您可以使用Google 的检测 api,它带有许多固体检测器/分类器,或者如果您希望为项目添加一层深度,您可以自己训练。PyImageSearch是一个很好的起点。如果你觉得更科学,你可以直接进入Tensorflow

祝你好运!

于 2018-03-26T13:29:32.200 回答
0

试试开源项目https://github.com/generalized-intelligence/GAAS 它使用立体相机和 SLAM 来检测障碍物。

于 2019-05-14T05:19:41.423 回答