赞
踩
这次参加深圳的高交会,在qualcomm展区看到了多款mini无人机,大家稍微细心一点就可以发现这些无人机都使用了一种叫光流定位的技术,很多人可能都还不明白光流定位是个什么东西,是如何进行定位的,今天就带大家一起来了解一下光流定位的原理。
在无人机上光流定位通常是借助于无人机底部的一个摄像头采集图像数据,然后采用光流算法计算两帧图像的位移,进而实现对无人机的定位,这种定位手段配合GPS可以在室外实现对无人机的精准控制,并且在市内没有GPS信号的时候,也可以实现对无人机的高精度的定位,实现更加平稳的控制。
在光流理论中,前提是下面两个假设成立:
1)摄像头采集到的两帧图像之间的像素灰度不变;
2)相邻的两帧像素具有相对运动;
根据第一个假设,如果两帧的灰度值不变,那么有以下关系成立:
其中 I(x,y,t)表示在时间dt后移动到第二帧图像(x+dx,y+dy)的位置,采用泰勒级数对两边进行展开,消去相同的项,就可以得到如下方程:
其中:
以上就是光流方程,其中fx和fy表示图像的梯度,ft表示时间梯度,但是上述方法是无法得到(u,v),因为一个等式无法求解两个未知数,为了解决这个问题,我们可以采用经典的lucas-Kanade方法来进行求解。
在lucas-Kanade方法中,我们需要用到我们第二个假设了,即在目标点的邻域内所有的点都具有相似的运动,这就是lucas-kanade方法的核心,基于该假设,其利用一个3X3邻域中的9个点具有相同运动得到9个光流方程,然后采用最小二乘进行拟合求解,最终得到(u,v)如下:
以上就是光流法计算像素点的移动速度的方法,在使用的时候,我们只需要对图像中的一些点去跟踪,采用上面的方法就可以计算得到光流向量,根据得到的光流向量,就可以进一步优化无人机的姿态控制,实现更加准确的控制。后期我们将在该理论的基础上,结合dragonboard 410c和opencv图像处理库,进一步介绍如何在dragonboard 410c上用opencv来实现光流跟踪。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。