Paper Reading | 一种高效的光流估计方法——NeuFlow v2

简介: 本文介绍了一种高效的光流估计方法——NeuFlow v2。

魔搭论文板块全新上线! 作为社区内汇总人工智能技术领域最新学术研究成果的专属功能区域,它不仅提供论文列表及链接,还附加每篇论文的摘要概述与核心亮点,致力于帮助社区用户迅速把握各项研究的核心价值与创新之处。 通过每日更新的论文板块,用户能够及时掌握AI技术的最新研究动态、大模型的最新进展、数据集应用的创新实践,以及AI技术跨界应用的前沿成果,助力探索智能科技的无限可能。

论文标题:

NeuFlow v2: High-Efficiency Optical Flow Estimation on Edge Devices

论文链接:

https://modelscope.cn/papers/43893/overview

模型链接:

https://modelscope.cn/models/z878570312/NeuFlow_v2

论文解读

本文介绍了一种高效的光流估计方法——NeuFlow v2。光流估计在现实世界中有许多应用,但是传统的计算密集型方法难以满足实时性和准确性的需求。本文作者通过引入更轻量级的骨干网络和快速精炼模块,实现了高精度和低计算成本之间的平衡。与现有的最优方法相比,该模型具有10倍到70倍的速度优势,并且在合成数据和真实数据上都表现出与最优方法相当的性能。该模型可以在Jetson Orin Nano上以每秒超过20帧的速度运行。作者提供了完整的训练和评估代码供读者参考。

image.png

方法描述

具体来说,NeuFlow v2包括以下几个关键步骤:

  1. 简单的骨干网络提取特征:本文避免使用耗时的ResNet或是FPN,而是研发了轻量级的骨干网络来提取特征。该方法使用了一个简单的卷积神经网络结构来提取图像的低级特征。该网络在1/2、1/4和1/8倍尺度下分别提取低级特征,并将这些特征通过少量卷积得到最终的特征表示。
  2. 全局匹配和局部微调:该方法首先使用基于transformer的全局匹配来获得初始的光流估计值,然后通过多次迭代来进一步优化这个估计值。具体来说,在每次迭代中,该方法会计算出相邻像素之间的相关性,并将相关性与上下文信息以及之前的隐状态向量结合起来,经过多个卷积层的处理后得到更新后的隐状态向量和光流估计值。
  3. RNN快速微调模块:我们提出了一个更简单的 RNN 模块,能够输出隐状态向量和微调后的光流。该模块计算量小,效率高,可实现更高精度的局部微调,而不是使用耗时的 LSTM 或 GRU等常用模块。

方法改进

相比于之前的版本(NeuFlow v1),该方法主要进行了以下两个方面的改进:

  1. 精简网络结构:该方法去除了冗余部分,只保留了有效的组件。这样做的目的是为了提高模型的效率和准确性。
  2. 引入了CNN块:该方法引入了一个由卷积、归一化和ReLU层组成的CNN块,用于提取多尺度图像的特征。该CNN块不仅能够有效地捕捉到不同尺度下的特征信息,还能够在不增加参数数量的情况下提高模型的表现力。

解决的问题该方法主要解决了光学流估计中的两个问题:

  • 基于深度学习的光流估计精度较高,但速度太慢,无法在边缘计算设备上实时运行。传统光流估计方法则精度不足。我们在保持最高精度的同时达到了10到70倍的加速,实现了在边缘设备上实时运行。

论文实验

本文还介绍了NeuFlow v2的实验结果和与其他光流方法的比较。在实验中,作者使用了FlyingThings、Sintel、KITTI等数据集进行了训练和测试,并对模型的准确度、速度以及内存占用等方面进行了评估。

首先,作者将NeuFlow v2与Sea-Raft-Large、Sea-Raft-Medium、NeuFlow v2、RPKNet、DIP、FlowFormer、GMFlow、RapidFlow等其他光流方法进行了比较。在计算时间方面,NeuFlow v2在RTX 2080和Jetson Orin Nano上均表现出色,而且相对于其他重模型如RPKNet和FlowFormer来说,NeuFlow v2的速度更快,但精度相近。在准确度方面,NeuFlow v2在Sintel和KITTI数据集上的表现都相对较好,特别是相对于Sea-Raft-Large和Sea-Raft-Medium等模型,在Sintel数据集上的表现更加稳定。

接下来,作者还进行了一系列的Ablation Study(剪枝实验),以进一步优化NeuFlow v2的性能。具体包括:

  1. Backbone Module(骨干模块):作者发现,使用全尺度图像特征并没有提高精度,反而会导致一些性能下降的情况。
  2. Refine Module(微调模块):作者通过增加或减少CNN层的数量来观察其对精度的影响。结果显示,减少层数会略微降低准确性,而添加更多的层数并不会显著提高准确性。因此,作者选择了8个CNN层作为最佳配置。
  3. Architecture(架构):作者使用了Cross-attention来交换两张图像之间的全局信息,去除它不会显著影响Kitti数据集上的准确性,但在Sintel数据集上会造成较大的性能下降。此外,作者还发现去除全局匹配,并相应添加1/16尺度的微调迭代次数,会使模型推理时间变长,并导致验证集上的准确性小幅下降。
  4. Different Iterations(不同迭代次数):作者发现在1/16次迭代中的默认迭代次数为一次,因为额外的迭代并不能显著提高准确性。相比之下,1/8次迭代可以从更多迭代中受益,虽然增加了推理时间,但也可以进一步提高准确性。

本文通过一系列的实验和分析,证明了NeuFlow v2在光学流领域的优越性能,特别是在速度和准确性方面的平衡表现。同时,作者也为后续的研究提供了有价值的参考和启示。

最佳实践

在魔搭社区免费提供的GPU免费算力上可体验NeuFlow v2:

image.png

!git clone https://github.com/neufieldrobotics/NeuFlow_v2.git
%cd NeuFlow_v2
!python infer.py

results:


点击链接👇直达模型~

https://modelscope.cn/models/z878570312/NeuFlow_v2?from=alizishequ__text

相关文章
|
机器学习/深度学习 编解码 算法
【论文理解】ICCV2021-视频中小目标检测Dogfight
论文地址:https://arxiv.org/abs/2108.02092目标:在无人机飞行过程中捕获的背景杂乱的画面中检测其他无人机挑战:任意的移动(相机移动,目标也移动)小尺寸,只占画面像素的0.05%~0.07%(PASCAL VOC (22.62%) and ImageNet (19.94%))形状变换(拍摄角度不同,拍摄的无人机形状不同)遮挡基于region-proposal的方法无法捕
|
存储 数据采集 传感器
一文多图搞懂KITTI数据集下载及解析
一文多图搞懂KITTI数据集下载及解析
15916 3
一文多图搞懂KITTI数据集下载及解析
|
编解码 人工智能 自然语言处理
魔搭社区每周速递(8.25-8.31)
326个模型、82个数据集、71个创新应用、5篇应用文章
魔搭社区每周速递(8.25-8.31)
|
6月前
|
监控 安全 应用服务中间件
网站出现“SSL handshake failed“?SSL握手失败(525)的错误修复指南
本文详细解析了Cloudflare中常见的SSL握手失败(525)错误,从问题定义到根源分析,再到具体解决方案,提供了一站式修复指南。通过检查证书域名匹配、有效性及时钟同步等问题,结合Nginx/Apache配置调整与Cloudflare设置优化,帮助用户彻底解决525错误。同时,文章还提供了预防措施,如自动续期和SSL状态监控,确保网站长期稳定运行。跟随步骤操作,可有效避免SSL相关故障,保障网站安全访问。
4926 0
网站出现“SSL handshake failed“?SSL握手失败(525)的错误修复指南
|
并行计算 PyTorch Linux
大概率(5重方法)解决RuntimeError: CUDA out of memory. Tried to allocate ... MiB
大概率(5重方法)解决RuntimeError: CUDA out of memory. Tried to allocate ... MiB
10267 0
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
4218 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与边缘计算:将深度学习模型部署到嵌入式设备
【8月更文第29天】随着物联网技术的发展,越来越多的数据处理任务开始在边缘设备上执行,以减少网络延迟、降低带宽成本并提高隐私保护水平。PyTorch 是一个广泛使用的深度学习框架,它不仅支持高效的模型训练,还提供了多种工具帮助开发者将模型部署到边缘设备。本文将探讨如何将PyTorch模型高效地部署到嵌入式设备上,并通过一个具体的示例来展示整个流程。
3510 1
|
数据采集 人工智能 监控
赌你一定想要!OpenDataLab首款大模型多模态标注平台Label-LLM正式开源
Label-LLM 是一款专为大模型训练设计的多模态文本对话标注工具,支持团队协作,让标注工作变得简单高效。它不仅涵盖丰富的任务类型,如回答采集、偏好收集和内容评估等,还支持多模态数据标注,包括图像、视频和音频。Label-LLM具备预标注载入功能,能大幅提升工作效率,并提供全方位的任务管理与可视化分析,确保标注质量。快来体验这款强大的标注平台吧![部署文档](https://github.com/opendatalab/LabelLLM)
2909 0
赌你一定想要!OpenDataLab首款大模型多模态标注平台Label-LLM正式开源
|
存储 机器学习/深度学习 人工智能
深入浅出 AI 智能体(AI Agent)|技术干货
随着人工智能技术的发展,智能体(AI Agents)逐渐成为人与大模型交互的主要方式。智能体能执行任务、解决问题,并提供个性化服务。其关键组成部分包括规划、记忆和工具使用,使交互更加高效、自然。智能体的应用涵盖专业领域问答、资讯整理、角色扮演等场景,极大地提升了用户体验与工作效率。借助智能体开发平台,用户可以轻松打造定制化AI应用,推动AI技术在各领域的广泛应用与深度融合。
31628 1
|
Linux 测试技术
Linux内核版本
【8月更文挑战第9天】Linux内核版本
454 10