这次参加深圳的高交会,在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来实现光流跟踪。

无人机光流定位系列——(一)原理剖析相关推荐

  1. 无人机光流定位系列——(二)实践

    在本系列blog中的http://blog.csdn.net/andymfc/article/details/53316404文章中,已经对光流定位的原理进行了详细的分析,详细介绍了著名的lucas- ...

  2. go底层系列-defer原理剖析

    go底层系列-defer原理剖析 目录 go底层系列-defer原理剖析 defer 前言 热身 defer规则 规则一:延迟函数的**参数在defer语句出现时就已经确定下来**了 规则二:延迟函数 ...

  3. 光流传感器 定位精度_光流定位原理是什么??

    在无人机上光流定位通常是借助于无人机底部的一个摄像头采集图像数据,然后采用光流算法计算两帧图像的位移,进而实现对无人机的定位,这种定位手段配合GPS可以在室外实现对无人机的精准控制,并且在市内没有GP ...

  4. 光流定位原理是什么??【转】

    转自:https://www.zhihu.com/question/35980316 Jessie Lee HIT/控制/无人机 光流是测速算法,并不是直接定位的.简单理解,光流就是通过检测图像中光点 ...

  5. 无人机上的光流定位通常适用于_航拍无人机学习(一)

    无人机航拍.摄影,现在是比较热.流行的一种摄影方式.因为无人机具有高空俯视.大视野.360度旋转摄影,定点.跟踪.轨迹设定拍摄等优点,成为风景摄影.事件跟踪拍摄.记录生活的好助手,深爱摄影爱好者的喜爱 ...

  6. 彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

    视觉三维重建 = 定位定姿 + 稠密重建 + surface reconstruction +纹理贴图.三维重建技术是计算机视觉的重要技术之一,基于视觉的三维重建技术通过深度数据获取.预处理.点云配准 ...

  7. Mysql索引原理剖析与优化策略

    Mysql索引原理剖析与优化策略 1.索引的本质  在⽣产环境中,随着数据量不断的增⻓,SQL执⾏速度会越来越慢,常⻅的⼿段就是通过索引来提升查询速度,那么究竟为什么要添加索引?应该如何正确添加索引? ...

  8. Elasticsearch分布式一致性原理剖析(一)-节点篇

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: ES目前是最流行的开源分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力.学习其搜索原理, ...

  9. java 反序列化 ysoserial exploit/JRMPListener 原理剖析

    目录 0 前言 1 payloads/JRMPClient 1.1 Externalizable 1.2 生成payload 1.3 gadget链分析 2 exploit/JRMPListener ...

最新文章

  1. Javascript - Vue - webpack
  2. p,br,hn,b,i,u,s,sup,sub标签
  3. mysql/event.myd no fond_mysql Last_Error: Error 'File './sales.MYD' not found (Errcode: 24)
  4. docker安装问题:E: Package 'docker-ce' has no installation candidate
  5. windows XP上实现python2.7.5和python3.4.3共存
  6. Visual C++编程中的文件操作
  7. php curl 下载图片 花,PHP curl下载图片的方法
  8. Message Queue基本使用说明
  9. [Android第三方类库]聊一聊Android的第三方开发组件
  10. 如何用Java和Kotlin实现高性能桌面条形码扫描
  11. esp32摄像显示时间_ESP32彩屏显示入门:我要五彩斑斓的黑,还有五光十色的白
  12. ROSBridge - ROS系统与非ROS外部系统的通信的C++客户端实现
  13. 一个屌丝程序猿的人生(一百二十)
  14. 科技巨头争相布局物联网 智能家居成争夺主战场
  15. 产品经理一定要知道的iOS App推送显示样式
  16. Unity URP DOTS Pathfinding+Animation 10000个单位
  17. OO ALV简单报表之DOCKING容器实现
  18. arm电子相册项目——项目要求篇(描述功能)
  19. 最近几年我买的一些技术书的随书光盘CD
  20. tf.keras.layers.MaxPooling2D

热门文章

  1. 【实习招聘】腾讯2023届暑期实习生招聘
  2. R语言使用epiDisplay包的summ函数计算dataframe中指定变量在不同分组变量下的描述性统计汇总信息并可视化有序点图、自定义cex.Y.axis参数设置Y轴轴标签字体的大小
  3. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factor
  4. Java程序员福音:349页阿里面试通关手册,助我闯进字节跳动
  5. php 之循环、数组操作函数
  6. 仿保卫萝卜Unity塔防游戏开发
  7. [MAUI]模仿网易云音乐黑胶唱片的交互实现
  8. Mac 终端配置代理
  9. Java访问权限之 protected详解
  10. CodeMix使用教程:调试