利用预训练好的模型实现 FlowNetPytorch(ubuntu18.04 cuda10.1 cudnn7.6.4)

光流的定义之类的,大家如果不了解可以自行搜索,这里就不讲了。

要进行光流提取,有很多传统的方法,不一定要用深度学习,例如用opencv里面自带的方法也可以做。这里说一说flownet这个网络 目前看有v1 v2 v3了 原作者的github一直在更新也给了docker版本,奈何我这里配置docker的images就用不了,因此在网上找到了一个pytorch的实现。这里把实现过程分享给各位。

第一步是配置好自己的pytorch 具体怎么配置网上有很多教程,我只强调一点,安装的时候一定要按顺序来,不要随意乱来。

下载pytorch版本代码,链接在这里

#1 进入虚拟环境 pytorch 确定该环境中已经装好cuda cudnn torch等且版本需要对应好 保证自己的gpu可用,没有gpu的话我就帮不了你了,其实也可以做的,不过要改的地方挺多。

conda activate pytorch

#测试一下

python
import torch
ptint(torch.cuda.is_available())

#如果返回结果为true 恭喜你,基本能做了

#2 看一下 刚才下载的文件夹有个requirements.txt 看看自己的虚拟环境是不是都有这些包 看的方法是

conda list

#或者用pip

pip list

#保证这些都安装好了 输入下面的命令 测试电脑是否已经安装了所有需要的包

python main.py -h

#如果没有安装,或者安装版本有问题,根据报错提示,相应安装或升降版本

#2测试电脑是否已经安装了所有需要的包

python main.py -h

#如果没有安装,或者安装版本有问题,根据报错提示,相应安装或升降版本

#3 准备数据 并加载预训练好的模型,自己建文件夹,把数据和模型放进去
/home/flownet/FlowNetPytorch-master/data
#数据路径要完整,作者的数据命名给出的名字有点问题

#img_pairs = []
#    for ext in args.img_exts:
#        test_files = data_dir.files('*1.{}'.format(ext))
#        for file in test_files:
#            img_pair = file.parent / (file.namebase[:-1] + '2.{}'.format(ext))
#            if img_pair.isfile():
#                img_pairs.append([file, img_pair])

#根据run_inference.py程序中的这段代码 可以看见图片对命名应该是1和2结尾 而不是0和1结尾 因此需要对命名的图片进行一个修改

/home/flownet/FlowNetPytorch-master/pretrained/flownetc_EPE1_766.tar
#模型要把全名写进去,下载预训练模型在原作者谷歌云盘里,需要梯子,否则很慢,自己训练需要自己下载数据数据集,可能会更慢(如果有需要可以联系我 帮忙搬运到百度云盘),下载下来不要去解压

#4批量运行帮助,检查需要输入的东西

python run_inference.py -h

运行的结果如下所示:

PyTorch FlowNet inference on a folder of img pairs

positional arguments:
  DIR                   path to images folder, image names must match
                        '[name]0.[ext]' and '[name]1.[ext]' ##注意!!这里的提示有问题!!,不是0和1##
  PTH                   path to pre-trained model

optional arguments:
  -h, --help            show this help message and exit
  --output DIR, -o DIR  path to output folder. If not set, will be created in
                        data folder (default: None)
  --output-value {raw,vis,both}, -v {raw,vis,both}
                        which value to output, between raw input (as a npy
                        file) and color vizualisation (as an image file). If
                        not set, will output both (default: both)
  --div-flow DIV_FLOW   value by which flow will be divided. overwritten if
                        stored in pretrained file (default: 20)
  --img-exts [EXT [EXT ...]]
                        images extensions to glob (default: ['png', 'jpg',
                        'bmp', 'ppm'])
  --max_flow MAX_FLOW   max flow value. Flow map color is saturated above this
                        value. If not set, will use flow map's max value
                        (default: None)
  --upsampling {nearest,bilinear}, -u {nearest,bilinear}
                        if not set, will output FlowNet raw input,which is 4
                        times downsampled. If set, will output full resolution
                        flow map, with selected upsampling (default: None) ##建议设置,输出完整大小的flow##
  --bidirectional       if set, will output invert flow (from 1 to 0) along
                        with regular flow (default: False) ##设置后 对偶输出,根据需要决定

#5看完后,写运行代码 直接进行批量测试

python run_inference.py -u bilinear /home/flownet/FlowNetPytorch-master/data /home/flownet/FlowNetPytorch-master/pretrained/flownetc_EPE1_766.tar

#6运行过程如下,做了一个示例

=> will save raw output and RGB visualization
=> fetching img pairs in '/home/flownet/FlowNetPytorch-master/data'       ##找到的图片位置
=> will save everything to /home/flownet/FlowNetPytorch-master/data/flow  ##默认结果保存位置
18 samples found                                                ##找到了图片对个数,一开始根据 -h中的设置,怎么都跑不出来,后来检查了源代码,发现作者帮助给错了!!!
=> using pre-trained model 'flownetc'                                            ##加载预训练模型,可以更换
100%|███████████| 18/18 [00:06<00:00,  2.80it/s]#速度还挺快的

#7到输出目录检查结果
#同时输出了flow和可视化的结果 可视化结果是拿来看的 flow可以作进一步使用

#至此就实现了利用pytorch对flownet进行复现的全过程,批量进行测试。如果要自己训练的,你需要去下载一下原作者的flying chair数据集,如果对原作者的代码和文章有兴趣想要学习和复现的请点击这里

#下一步我想实现以下flownet3 源代码在这里,如果已经有实现的朋友 欢迎指导和讨论

发布了1 篇原创文章 · 获赞 0 · 访问量 15

猜你喜欢

转载自blog.csdn.net/weixin_43969966/article/details/104275286
今日推荐