光流适用在连续的图像系列(视频流)中,描述本身或画面目标的运动状态;在目标跟踪、运动分析、甚至slam中都有广泛应用。

opencv里就有不少光流算法,其中很经典也是当前被调用最多的的Lucas-Kanade算法;参看

calcOpticalFlowPyrLK(...)

2006年,Edward Rosten在各种慢速角点检测中给出了一种快速角点检测方案,取名FAST;后续也有相关改进。

http://www.edwardrosten.com/work/fast.html

http://www6.in.tum.de/Main/ResearchAgast

可以参看opencv

FastFeatureDetector

FAST角点重点强调速度快,角点的质量不如Harris、SIFT、SURF等慢速角点;可是天下那啥,为快不破,于是火了,在各种实时系统中或追求速度的系统中,都有他的身影,甚至随后还发展了不少与之配套的二值特征描述ORB,BRIEF,BRISK等。

2014年,Matthieu Garrigues,Video Extruder A real-time semi dense point tracker,给出了一种基于FAST的光流方法,速度+性能很是惊艳。其中为每个FAST角点制定16维灰度描述,梯度下降搜索,以及块光流估计是其成功的亮点。不过他不关注角点分布。

Video%20Extruder%20A%20real-time%20semi%20dense%20point%20tracker

2017年CVPR,有篇文章JiaWang Bian,GMS: Grid-based Motion Statistics for Fast, Ultra-Robust Feature Correspondence;介绍如果更好的筛选匹配点。其中本质的思想就是局部刚体约束,处在同一局部的特征点要有一致性运动(光流),否则剔除;该方法在一些复杂运动目标,或孤立点对上,有局限性。

https://github.com/JiawangBian/GMS-Feature-Matcher

有了上面种种,在实际应用中,希望角点稀疏的同时,尽可能均匀分布在画面的各个区域(对SLAM特别有好处);于是设计如下方案:
1. 金字塔结构(有下往上匹配)-> 满足快速运动目标
2. FAST角点,网格滤波,尽量均匀分布 -> 稀疏,但均匀,可设定期望角度数,demo展示默认2048个
3. 16维梯度描述 + 梯度下降搜索 -> 相比Matthieu Garrigues,描述提取可以更简单
4. 局部方向一致性约束 -> 类GMS约束
5. 自动FAST角点补缺 -> 维持稀疏下的稠密度,保证有期望数目的种子点去做后续跟踪

Demo介绍:

运行程序,可以看到界面;
[V] - 快捷键,选择测试视频流

[C] - 快捷键,打开usb摄像头

选择测试数据,即可看到相关效果。

DEMO下载链接
http://pan.baidu.com/s/1bo203fx

如果运行出错,请自行安装VC_RedistInstaller.exe

快速稀疏角点光流框架(Fast sparse corner optical flow framework)的更多相关文章

  1. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  2. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  3. JavaScriptOO.com – 快速找到你需要的 JS 框架

    JavaScriptOO.com 集合了目前 Web 开发中最常用的422(截至目前)款 JavaScript 框架,你可以根据功能类别(Ajax,动画,图表,游戏等)进行过滤和排序,快速找到你需要的 ...

  4. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  5. TensorFlow RNN MNIST字符识别演示快速了解TF RNN核心框架

    TensorFlow RNN MNIST字符识别演示快速了解TF RNN核心框架 http://blog.sina.com.cn/s/blog_4b0020f30102wv4l.html

  6. 光流法(optical flow)

    光流分为稠密光流和稀疏光流 光流(optic flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了.因为这种视觉现象我们每天都在经历.从本质上说,光流就是你在这个运动着的世界里感 ...

  7. 光流optical flow基本原理与实现

    光流(optical flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了.因为这种视觉现象我们每天都在经历.从本质上说,光流就是你在这个运动着的世界里感觉到的明显的视觉运动(呵 ...

  8. 主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgniter,Symfony,ThinkPHP,FleaPHP)

    Zend Framework 优点: Zend Framework大量应用了PHP5中面向对象的新特征:接口.异常.抽象类.SPL等等.这些东西的应用让Zend Framework具有高度的模块化和灵 ...

  9. 光流(optical flow)和openCV中实现

    转载请注明出处! ! ! http://blog.csdn.net/zhonghuan1992 光流(optical flow)和openCV中实现 光流的概念:        是Gibson在195 ...

随机推荐

  1. BZOJ 2424 订货 最小费用流

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2424 题目大意: 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的 ...

  2. linux查看主板型号及内存硬件信息,及硬盘测速

    查看主板型号: sudo  dmidecode |grep -A16 "System Information$" 内存槽及内存条: sudo  dmidecode |grep -A ...

  3. git使用,在ubuntu中

    #安装sudo apt install git要先到github官网建一个账号. #配置 你的github git config --global user.name "fanbrightu ...

  4. Azkaban时区问题导致调度差1天

    设置了Azkaban调度是每日凌晨一次,如下: 但是调度历史上显示最近一次调度时间是 初步怀疑是因为时区问题导致,查看服务器时区如下 cat /etc/timezone 为Asia/Shanghai. ...

  5. 1798. [AHOI2009]维护序列【线段树】

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  6. 【洛谷】【treap/堆】P2073 送花

    [题目描述:] 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面添加花.他有以下几种操作: 操作 含义 1 W C 添加一朵美丽值为W,价格为C的花. 3 小 ...

  7. 20175209 实验三《敏捷开发与XP实践》实验报告

    20175209 实验三<敏捷开发与XP实践>实验报告 一.实验内容 编码标准:在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Cod ...

  8. 多线程之线程间协作的两种方式:wait、notify、notifyAll和Condition

    Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...

  9. 节点和Topic通信

    1.简介 对于实时性. 周期性的消息, 使用topic来传输是最佳的选择. topic是一种点对点的单向通信方式, 这里的“点”指的是node, 也就是说node之间可以通过topic方式来传递信息. ...

  10. HDU 1087 Super Jumping! Jumping! Jumping!(求LSI序列元素的和,改一下LIS转移方程)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limit: 20 ...