经典光流估计算法和光流对齐方法
LK光流(稀疏光流)
传统稠密光流算法:
Farneback算法
2003 - Gunner Farneback - Two-Frame Motion Estimation Based on Polynomial Expansion (多项式展开)(稠密光流)
flow = cv2.calcOpticalFlowFarneback(img0, img1, None, 0.5, 3, 15, 3, 5, 1.2, 0)
https://www.cnblogs.com/luofeiju/p/11971181.html
Deep Flow算法
of_estim = cv2.optflow.createOptFlow_DeepFlow()
flow = of_estim.calc(img0, img1, None)
TVL1算法
of_estim = cv2.optflow.DualTVL1OpticalFlow_create()
flow = of_estim.calc(img0, img1, None)
Simple Flow算法
of_estim = cv2.optflow.createOptFlow_SimpleFlow()
flow = of_estim.calc(img1, img0, None)
深度学习算法:
FlowNet
PWCNet
TOFlow
光流对齐:
warping代码例子
https://subscription.packtpub.com/book/application_development/9781785283932/1/ch01lvl1sec16/image-warping
import numpy as np
def AdjustIndex(img, border):
img[img<0] = 0
img[img>=border] = border - 1
return img
def alignImages(im1, flow):
height, width = im1.shape[0], im1.shape[1]
# index
u = np.arange(0, width)
ul = np.tile(u, (height, 1))
idx = ul + flow[:,:,0]
idx0 = np.floor(idx) # 横坐标
idx1 = idx0 + 1
AdjustIndex(idx0, width)
AdjustIndex(idx1, width)
v = np.arange(0, height)
v = v.reshape(v.shape[0], 1)
vl = np.tile(v, (1, width))
idy = vl + flow[:,:,1]
idy0 = np.floor(idy) # 纵坐标
idy1 = idy0 + 1
AdjustIndex(idy0, height)
AdjustIndex(idy1, height)
# weight
w00 = (1 - (idy - idy0)) * (1 - (idx - idx0))
w01 = (1 - (idy - idy0)) * (idx - idx0)
w10 = (idy - idy0) * (1 - (idx - idx0))
w11 = (idy - idy0) * (idx - idx0)
# take value
f00 = np.zeros(im1.shape, dtype=im1.dtype)
f01 = np.zeros(im1.shape, dtype=im1.dtype)
f10 = np.zeros(im1.shape, dtype=im1.dtype)
f11 = np.zeros(im1.shape, dtype=im1.dtype)
for h in range(0, height):
for w in range(0, width):
f00[h, w] = im1[int(idy0[h, w]), int(idx0[h, w])]
f01[h, w] = im1[int(idy0[h, w]), int(idx1[h, w])]
f10[h, w] = im1[int(idy1[h, w]), int(idx0[h, w])]
f11[h, w] = im1[int(idy1[h, w]), int(idx1[h, w])]
# bilinear warping
align_im = np.zeros(im1.shape, dtype=im1.dtype)
for i in range(im1.shape[2]):
align_im[:,:,i] = w00 * f00[:,:,i] + w01 * f01[:,:,i] + w10 * f10[:,:,i] + w11 * f11[:,:,i] # 双线性插值
return align_im
经典光流估计算法和光流对齐方法相关推荐
- 光流估计算法RAFT的论文和代码阅读
RAFT论文和代码阅读 RAFT: Recurrent All-Pairs Field Transforms for Optical Flow Zachary Teed and Jia Deng EC ...
- 视频光流估计综述:从算法原理到具体应用
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:肖泽东 | 来源:知乎 https://zhuanlan.zhihu.com/p/7446034 ...
- 综述:光流估计从传统方法到深度学习
作者丨肖泽东 Shon@知乎 来源丨https://zhuanlan.zhihu.com/p/74460341 编辑丨目标检测与深度学习 编者荐语 光流估计是计算机视觉研究中的一个重要方向,然而,因为 ...
- 光流估计:从传统方法到深度学习
来源:信息网络工程研究中心本文约4200字,建议阅读10+分钟 近年来,深度学习技术,作为一把利剑,广泛地应用于计算机视觉等人工智能领域. 一.摘要 近年来,深度学习技术,作为一把利剑,广泛地应用于计 ...
- 光流估计——从传统方法到深度学习
本文转载自知乎,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/74460341 1.摘要 近年来,深度学习技术,作为一把利剑,广泛地应用于计算机视觉等人工智 ...
- 光流(二)--光流算法
原文: http://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802124.html 简介:在计算机视觉中,Lucas–Kanade光流算法是一种两帧差分 ...
- <论文阅读> 基于 Warping 理论的高精度光流估计 (计算机视觉 - ECCV 2004)
目录 摘要 1 简介 2 变分模型 3 最小化 3.1 欧拉-拉格朗日方程 3.2 数值逼近 4 与 Warping 方法的关系 摘要 我们研究了一种用于计算光流的能量函数,它结合了三个假设:亮度 ...
- 光流 | 近十年光流参考文献总结
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 [1]Bruhn A, Weick ...
- FlowFormer: Transformer结构光流估计
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡泡机器人 来源丨 泡泡机器人SLAM 标题: FlowFormer: A Transforme ...
最新文章
- 最萌算法学习来啦,看不懂才怪!| 码书
- 使用pip安装特定的软件包版本
- 《系统集成项目管理工程师》必背100个知识点-46质量与等级
- 为什么需要Redis 集群
- Spring AOP原理浅析及入门实例
- mysql 8.0.25 取巧解决修改密码报错问题
- 最方便的字符设备驱动的写法
- 【leetcode】667. Beautiful Arrangement II
- 确定填充介质的矩形波导单模传输TE10波的工作频率
- isnan 函数 -javascript1.1
- Qt视频直播软件--项目实战(Day1)
- 第七篇,STM32串口通信编程
- 中英文自动翻译(有道翻译、彩云小译)
- python星号画平行四边形_Python练习题 018:打印星号菱形
- 30天学习一部无字幕美剧-《老友记》
- Hourglass网络的理解和代码分析
- mc服务器对虚拟存储,Duang~~~ 虚拟存储的十个建议
- 割平面算法求解整数规划
- oracle收集snop,SNAP收集服务器信息
- 教学优化算法的简单介绍
热门文章
- Spring Boot 3.x 系列【23】集成Spring WebFlux开发响应式应用程序
- SEO外推福利:外链高收录平台与外链类型分析
- 宝元系统通讯软件recon_优软科技会场式电话录音系统
- html文件匹配歌手名和歌名,获取QQ音乐歌手姓名、歌曲信息、播放链接,爬,起,qq,名字...
- 两条线段的交点 交点
- 波束形成算法学习笔记之一(Endfire,broadside)
- 一男老师每日百词转载+连载(1)
- C语言:开平方判断素数
- SSH——Hibernate初学者之旅(五)
- 美食探店的文章怎么写?有什么技巧