一、背景
最近想利用深度学习做一些光流方面的工作,网上看了很多光流深度学习网络的介绍,不同的网络实现代码的风格、使用的深度学习框架等都不同。“OpenMMLLab是目前最完备的计算机视觉算法体系和框架”,光凭这一点就足够深入学习。该框架下针对目标分类,目标检测、语义分割、图像编辑、光流估计等诸多方面做了大量的工作,最新开源的光流估计框架更是让我看到了上手深度学习光流的曙光。OpenMMLLab开源项目,通过统一在pytorch框架下,将多个光流网络进行了同架构实现,于是决定从OpenMMLLab入手,探索一下深度学习方法的光流估计问题。
二、mmFlow安装
OpenMMLab下的OpenMMFlow是专门针对光流估计的开源框架,实现了flownet、flownet2、GMA、liteflownet、RAFT、PWCnet等一系列网络,并提供了对应的预训练模型。开源项目在github上直接搜mmcv就能找到,国内不方便访问github的同学可以在gitee上同步找到,网址:https://mmflow.readthedocs.io/en/latest/install.html
对于mmFlow的使用,其实官方说明里提供了非常详细的教程,可以参考网址:https://mmflow.readthedocs.io/en/latest/install.html,安装和使用按照教程就可以了。
个人使用环境及版本:
Ubuntu TLS | 20.04.5 LTS |
GPU Driver Version | 472.84 |
CUDA Version | 11.1 |
torch | 1.10.1+cu111 |
torchvision | 0.11.2+cu111 |
torchaudio | 0.10.1+cu111 |
我在实际安装和使用过程中,遇到了一些问题,这里同步做个总结:
整体安装流程如下:
先创建虚拟环境,官方教程是安装anaconda,并利用其创建虚拟环境。如果不想使用虚拟环境,那么可以不用这一步。(我以前是pip死忠粉,趁着机会也用了用conda,有一说一它的虚拟环境版本控制真的很方便 +_+)。有基础的python环境后,安装对应版本的pytorch就行,注意这里pytorch版本要跟本地环境的cuda版本对应,对应关系可在网上查询。
其次,需要安装openmmLab的基础库mmcv,mmcv有轻量化版本和完整版mmcv-full,使用光流框架的话需要安装完整版。这里注意,官网教程是先通过安装openmim包(类似于pip的模块安装工具)即命令pip install openmim.再通过openmim安装mmcv-full, 即 mim install mmcv-full (但是我第一次试的时候,一直失败=_=)
这里其实可以考虑我们平时用pip安装扩展包的方式,直接pip install mmcv-full即可。又或者,根据所需的cuda版本和pytorch版本,pip安装时指定下载路径,即使用命令:
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
在cu_version和torch_version除填上所需的版本号即可。例如:
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
当然,除了上述安装方法之外,还有源码编译的方法,不过一般上述方法都能成功(Life is short, we need python pip. Doge)
注意:这里如果是使用conda的虚拟环境里的pip安装,会有坑。 即,命令直接输入pip install 时,此时的pip并非我们真正所需的pip。因为在虚拟环境中,每个虚拟环境都对应一个pip及其模块安装路径。所以为了保证不出错,使用conda时,pip命令最好给当前虚拟环境下pip程序的绝对路径。例如 ~/miniconda3/envs/testEnv/bin/pip install mmcv-full
最后,需要安装mmflow,这里直接把mmflow的源码clone到本地,git命令或着直接到github下载解压均可,先安装numpy,然后进入mmflow目录,pip install -e . 安装即可,注意命令最后的 . 表示当前路径,不要忘记输了。
验证安装是否成功:
至此,mmflow安装完成!!后续的使用及修改待更新.
“我早已忘记一封情书该怎么开头
却忽然想起你是怎么松开我的手
追求 先拿青春换富有
幸运的才能买回自由”
——《时代之梦》 Escape Plan