【视频分割】【深度学习】Windows10下MiVOS官方代码Pytorch实现与源码解析

【视频分割】【深度学习】Windows10下MiVOS官方代码Pytorch实现与源码解析

提示:最近开始在【视频分割】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。



前言

MiVOS是由伊利诺伊大学的Cheng, Ho Kei等人在《Modular Interactive Video Object Segmentation: Interaction-to-Mask, Propagation and Difference-Aware Fusion [CVPR-2021]》【论文地址】一文中提出的模型,模块化交互式VOS(MiVOS)框架将交互到掩码和掩码传播分离,从而实现更高的泛化性和更好的性能。
在详细解析MiVOS网络之前,首要任务是搭建MiVOS【Pytorch-demo地址】所需的运行环境,并完成模型训练和测试工作,展开后续工作才有意义。
MiVOS官方Pytorch代码解析–GUI主界面
MiVOS官方Pytorch代码解析–S2M功能模块
MiVOS官方Pytorch代码解析–S2M(DeepLavV3Plus)网络解析
MiVOS官方Pytorch代码解析–Propagation功能模块
MiVOS官方Pytorch代码解析–Propagation(PropagationNet)网络解析
MiVOS官方Pytorch代码解析–Propagation(FusionNet)网络解析


MiVOS模型运行

1.下载源码并安装环境

在Windows10环境下装anaconda环境,方便搭建专用于MiVOS模型的虚拟环境,所有依赖包都安装在这个虚拟环境下。

# 创建虚拟环境
conda create -n mivos python=3.7.7
# 查看新环境是否安装成功
conda env list
# 激活mivos虚拟环境
activate mivos 

安装合适的pytorch和torchvision(GPU版)

# 安装合适的pytorch和torchvision
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117

【MiVOS源码地址】,包含官方安装教程

# githup下载MiVOS源代码到适合目录内,解压文件
# 通过清华源安装MiVOS所需的第三方包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5 progressbar2  opencv-python networkx gitpython gdown Cython matplotlib

【davis-interactive源码地址】,davis-interactive包是通过执行setup.py代码安装

# githup下载davis-interactive源代码到适合目录内,解压文件
# 在xxxxxxx/davis-interactive-master/目录下执行setup.py代码
python setup.py install
# setup.py执行过程也是安装了其他包
# 要是超时,可以提前下载以下davis-interactive的依赖包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy scikit-learn==0.20.3 scikit-image pandas 

安装过程可能出现的问题"cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp"

解决方法: 打开setup.py文件

extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
# 上述修改为
extra_compile_args=['-std=c99'],


执行成功

# 查看所有安装的包
pip list
conda list

最终的安装的所有包。

2.下载数据集和模型权重

作者已经把需要手动下载的数据封装到代码中自动执行

# 下载模型权重
python download_model.py
# 可以通过执行py代码来下载DAVIS数据集
python download_datasets.py
# 可以通过执行py代码来下载BL30K数据集(800G顶不住,我暂时没下)
python  download_bl30k.py

假如下载太慢或者老挂,可以查看代码获得数据的下载地址手动下载,按照代码里的处理方式重命名文件和更改数据的文件目录结构。

3.运行MiVOS代码

# 运行分割视频
python interactive_gui.py --video <视频地址> --num_objects <目标个数>
# 运行分割图片集
python interactive_gui.py --images <图片集地址> --num_objects <目标个数>
# eg: python interactive_gui.py --images testimages --num_objects 2

可能出现" pickle.UnpicklingError: unpickling stack underflow"的错误: 由于临时文件夹中没有完整缓存整个模型,导致载入失败。

解决方法: 删除原来临时文件夹中的模型,在C:\Users\xxxx\内其他文件或者自文件中存在.cache文件,进入.cache\torch\hub\checkpoints的目录下:
我的地址则是

C:\Users\XXXXX\.cache\torch\hub\checkpoints

4.代码效果演示

演示视频


总结

尽可能简单、详细的介绍MiVOS的安装流程以及解决了安装过程中可能存在的问题。后续会根据自己学到的知识结合个人理解讲解MiVOS的原理和代码。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值