Py学习  »  机器学习算法

OpenMMLab开源首个基于深度学习算法的光流估计工具箱

3D视觉工坊 • 2 年前 • 239 次点击  
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
来源丨OpenMMLab
编辑丨极市平台

导读

 

MMFlow 中包含了 8 种光流算法,从经典的FlowNet、FlowNet2、PWC-Net,到2020年的RAFT都有实现;另有 FlyingChairs、Sintel、KITTI 等 7 个光流数据集;以及多种光流的评价方法,光流文件读写和可视化方法。

光流(Optical Flow),字面理解为“光的流动”,更准确的说法为:时变图像上的二维运动场,是视频数据的重要视觉线索,在动作识别、视频理解、视频分割、目标跟踪以及全景拼接等领域,都有广泛应用。



从2015年的 FlowNet 起,和其他视觉任务一样,基于深度学习的光流估计算法开始成为研究热点,并且性能“碾压”传统算法。但是,至今一直没有通用的算法库来支持辅助光流算法的研究。


今天,OpenMMLab 为填补这一空白隆重推出 MMFlow !


MMFlow 为当下流行的基于深度学习的光流算法提供了统一的训练、推理、评估的算法框架;简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本!


同时,我们更延续了 OpenMMLab 系列的模块化风格,继承了高度灵活 config 功能。目前,MMFlow 代码库已于11月16日全面开源!


GitHub 链接:

https://github.com/open-mmlab/mmflow



先来看看 MMFlow 的惊人效果吧!

👇


(点击图片跳转小程序观看~



首个开源基于深度学习算法的光流估计工具箱


传统光流算法,例如TV-L1、L-K 算法,在 OpenCV 中都有支持,但基于深度学习的光流估计算法,依然缺少统一的代码框架;并且,由于时代的局限、和关键算子的限制,不同光流算法所依赖的深度学习算法框架都不一致,这给代码复现、借鉴、公平对比都带来了很大的困难。


MMFlow 中包含了 8 种光流算法,从经典的FlowNet、FlowNet2、PWC-Net,到2020年的RAFT都有实现;另有 FlyingChairs、Sintel、KITTI 等 7 个光流数据集;以及多种光流的评价方法,光流文件读写和可视化方法。


此外,在 OpenMMLab 的 MMCV 中,实现了 Correlation,DCN 等高性能 CUDA 算子,因此 OpenMMLab 的 MMFlow 真正是史上最全、最统一的光流算法框架



高效、强大的基准模型


在 MMFlow 中,我们复现了光流领域的经典深度学习算法,部分模型,例如 FlowNet PWC-Net  等,超过官方公布精度


FlowNetC 和 FlowNetS 模型在 FlyingChairs 数据集上的预训练模型和 Sintel 数据集上的 Fine-tune 模型,在 Sintel (training) 数据集上的 Average EPE 评价结果,均高论文(*)公布结果



对于PWC-Net 方法,同样,不论是预训练模型还是 Fine-tune 模型,其结果都优于论文发布结果(*)



模块化设计和丰富灵活的配置文件


模块化设计:同 OpenMMLab 其他算法库一样,我们使用统一框架和模块化设计实现了各个算法


一方面可以尽量实现代码复用,另一方面,方便大家基于此框架实现新的算法。以下是 MMFlow 的大致框架:



MMFlow 主要由 4 个部分组成datasets、models、core 和 apis。datasets 用于数据集加载和预处理,其中包含训练所需的数据集,光流数据增广的pipelines,和加载数据时的 samplers。models是最关键的部分,光流模型在这里实现。


如图所示,我们把光流算法的模型,抽象成flow_estimators ,并将它分解为 encoders 和 decoders 两个模块。


encoder 的主要作用是提取输入图像的特征信息;decoder 的功能包括计算图像之间的相关性、计算 loss,预测输出的光流等。在 apis 中,我们为模型训练、测试和推理提供一键启动的接口。core 中实现了用于模型训练的评估工具和定制的 hooks 。


丰富灵活的配置文件:得益于 OpenMMLab 强大的且高度灵活的 cfg 模式和注册器机制, MMFlow 可以做到不改动代码只编辑配置文件便可实施消融实验。



相比于更接近产品应用的视觉任务,光流估计这一任务更类似计算机视觉中的“基础学科”,尽管不能直接被应用,但是对它的研究能促进多个领域的发展。


我们希望 MMFlow 可以提高大家对光流的关注度,降低该领域的研究门槛,使之成为新一代cv助力板。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。


一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列 手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
 圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/123464
 
239 次点击