无人机的避障 - 我应该采取哪种方法?

时间:2018-03-22 19:17:52

标签: python opencv image-processing computer-vision realsense

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

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

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

但我对此有些怀疑:

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

2)我想,当无人机左右或上下移动时,我会得到一些假的"假的"由无人机的运动引起的矢量而不是因为隐约的障碍物。怎么预防这个?

另一个解决方案我被告知所显示的方法here(描述中的纸张链接)和实施它的人github link然而作者承认他"永远不会让障碍物检测正常工作在无人机上#34;

我被告知的另一个选择是将一个真实相机附加到无人机上并以某种方式提取有关障碍物的信息。

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

提前感谢您的回复。

2 个答案:

答案 0 :(得分:0)

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

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

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

祝你好运!

答案 1 :(得分:0)

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