社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

3D视觉工坊 • 4 年前 • 595 次点击  
点击上方“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