【光流评估】《Optical Flow Estimation using a Spatial Pyramid Network》2016 Tubingen, Germany

本文主要是介绍【光流评估】《Optical Flow Estimation using a Spatial Pyramid Network》2016 Tubingen, Germany,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:我们通过结合深度学习和经典空间金字塔结构的方式来计算光流。通过使用每个金字塔级别的光流评估warp图像和更新光流,这种方法以一个粗到精的方式评估图像中的大运动。不同于在每个金字塔层级最小化对象函数。我们在每个层级训练网络,以计算光流更新。不像最近的FlowNet光流网络,本网络不需要处理大运动,由网络中的金字塔层级处理大运动。这有几个优点:(1)在模型参数上我们的SpyNet更简单,比FlowNet小96%,这使得网络在嵌入式应用领域非常高效。(2)因为每个层级的光流比较小(小于一个pixel),对一对warp图像应用卷积方法是合适的。(3)不像FlowNet,本网络学习的卷积滤波器与传统的时空滤波器相似,这让我们能够洞察到网络的内部以及如何提升它。在多个数据集上的结果显示我们的方法比FlowNet更加高效。

 

paper地址:https://arxiv.org/abs/1611.00850

 

主要贡献点

(1)结合深度学习与传统由粗到精(coarse-to-fine)金字塔结构评估光流;

  (2) 提出一个新的模型SpyNet,比FlowNet更快,参数量少96%;

(3)在公共数据集(Sintel, KITTI和MiddleBurry)上,SPyNet实现了比FlowNet更低的错误率。

相关工作

        空间金字塔(spatial pyramids)和光流(optical flow)    Horn和Schunck提出了解决光流问题的传统结构,他们的工作包含优化计算基于亮度常数项和空间平滑项的数据的和。这些传统方法通常受限于一个事实:他们对图像亮度变化和光流空间结构做非常近似的假设。通过学习的方法计算光流的最大好处是,我们不需要手动更改这些假设。另外,图像亮度变化和空间平滑改变嵌入到网络结构中。利用空间金字塔的思想有一个非常长的历史。解决大运动的基本动机使得人们提出经典的Gaussian和Laplacian金字塔来解决光流评估问题。这些方法在处理小物体的快速运动时通常会出现问题。Brox将大范围匹配包含到传统光流对象函数里面。这种结合图像匹配捕捉大运动和离散优化处理小运动的方法能够获得精确的结果。

        时空滤波器(Spatio-temporal filters)Burt和Adelson展示了运动评估的时空模型的理论。Heeger提供了一个计算具体化方法。当使用人类感知来评估效果时,这些方法在那个时候往往不能产生较好的结果。许多基于学习的时空滤波器方法已经出现,例如使用独立的组件分析,稀疏性和多层模型。Hinton使用一个置限玻尔兹曼机学习简单的空间转换,以发现不同的滤波器。Taylor使用合成数据学习"像光流(flow like)"特征,同样使用置限玻尔兹曼机,但是不能评估光流准确率。Dosovitskiy使用深度网络来学习光流评估的时空滤波器,然而这些滤波器并不像那些受神经科学启发设计的经典滤波器。通过使用金字塔结构,我们学习视觉上非常像传统时空滤波器的滤波器,因为这些滤波器通过数据学得,所以通常能够产生较好的光流评估。

方法

(1)空间采样  d\left ( \cdot \right )表示将一个m * n的图像I下采样到 m/2 * n/2。u\left ( \cdot \right )表示上采样。这两个操作也被应用于中间光流场的上采样和下采样。w\left ( I, V \right )表示使用光流场V 空间扭曲输入图像I,使用双线性插值方式。

(2)推断  \left \{ G_0, ... G_K \right \}表示已经计算好的卷积神经网络模型集,其中每一个模型计算残差光流v_k。k表示第几层。

                                                                                                                                       v_k=G_k\left ( I_k^1, w\left ( I_k^2,u\left ( V_{k-1} \right ) \right ) , u\left ( V_{k-1} \right ) \right )

 卷积网络G_k通过以下输入变量计算第k层的残差光流v_k:上一级金字塔的上采样光流V_{k-1}和视频帧\left \{ I_k^1, I_k^2 \right \}。第二帧I_k^2在传入卷积网络G_k之前使用光流进行图像扭曲变换w\left ( I_k^2, u\left ( V_{k-1} \right ) \right )。在第k层级的光流V_k的计算公式如下:

                                                                                                                                       V_k=u\left ( V_{k-1} \right )+v_k

主网络结构图如下:

值得注意的是该网络是分段按G_0,G_1,G_2依次训练,并不是一次性端到端训练。子网络G_k的网络结构图如下:

其中V_{k-1}是上一级的光流场经过上采样后的结果,对于卷积网络G_0V_{k-1}为0。

 

实验

训练数据集:Flying Chairs datasets

网络模型:5个子卷积网络\left \{ G_0, G_1, G_2, G_3, G_4 \right \},其中G_k由5个卷积层组成,每个卷积层后面接一个ReLU激活函数。卷积核大小为7。这5个卷积层的中间通道数依次为\left \{ 32, 64, 32, 16, 2 \right \}

训练参数: 优化器Adam(\beta _1=0.9, \beta _2=0.999),batch=32,  每个epoch 4000次迭代。前60个epoch的学习率是1e-4, 然后降到1e-5直到网络收敛。

数据增广:1.随机改变图像尺寸,缩放因子{1, 2}。2.在[-17, 17]随机旋转图像。3.随机裁剪匹配网络输入的分辨率。4.随机添加高斯白噪声,N(0, 0.1)。5.随机添加色彩晃动(亮度、对比度、饱和度),N(0, 0.4)。

在公共数据集上的实验结果

参数量

综合性能

 

后记: 我使用GIthub上的一个非官方的Pytorch实现(SPyNet),应用提供的模型权重计算光流,然后warp图像时,结果图像中出现了尾影现象,部分边缘区域像素值为零。

 

这篇关于【光流评估】《Optical Flow Estimation using a Spatial Pyramid Network》2016 Tubingen, Germany的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961898

相关文章

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

GNSS CTS GNSS Start and Location Flow of Android15

目录 1. 本文概述2.CTS 测试3.Gnss Flow3.1 Gnss Start Flow3.2 Gnss Location Output Flow 1. 本文概述 本来是为了做Android 14 Gnss CTS 的相关环境的搭建和测试,然后在测试中遇到了一些问题,去寻找CTS源码(/cts/tests/tests/location/src/android/locat

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

深度学习--对抗生成网络(GAN, Generative Adversarial Network)

对抗生成网络(GAN, Generative Adversarial Network)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN主要用于生成数据,通过两个神经网络相互对抗,来生成以假乱真的新数据。以下是对GAN的详细阐述,包括其概念、作用、核心要点、实现过程、代码实现和适用场景。 1. 概念 GAN由两个神经网络组成:生成器(Generator)和判别器(D

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

随着人们网络安全意识提高,软件架构设计与评估也成为重中之重

目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12分) 【答案】 【问题 1】答案 【问题 2】答案 相关推荐 案例         阅读以下关于软件架构设计与评估的叙述,回答问题 1 和问题 2。 【题目】         某电子商务公司为正更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信

实践课堂|2016成都站|报名开始啦!

Hi,QingCloud 的小伙伴们,欢迎参加史上最有营养的云知识讲堂。 QingCloud 实践课堂系列开始于 2014 年末,在深圳、上海、广州、成都、杭州、北京六个城市,QingCloud 的研发工程师们同近千名 CIO 、架构师、开发者、运维工程师……分享了 QingCloud 的技术理念、功能特性和使用技巧,还有来自人民网、融云、泰捷视频、杏树林、友好速搭、百姓网、冰点、顺丰速运、洋葱