尝试在google colab中使用argparse,错误:需要以下参数

问题描述 投票:0回答:1

嗨,我尝试使用谷歌colab中的pwc-net算法从图像帧(存储在谷歌驱动器中)中提取光流的代码如下:

from mmcv.utils import config
# Copyright (c) OpenMMLab. All rights reserved.
!pip install mmcv-full
!pip install mmflow
import os.path as osp
from argparse import ArgumentParser

import mmcv
# use the pre-trained model for the whole PWC-Net
load_from = 'https://download.openmmlab.com/mmflow/pwcnet/pwcnet_8x1_sfine_flyingthings3d_subset_384x768.pth'  # model path can be found in model zoo
from mmflow.apis import inference_model, init_model
from mmflow.datasets import visualize_flow, write_flow
parser = ArgumentParser()
img1='/content/drive/My Drive/resizedImages_river/frame1.jpg'
img2='/content/drive/My Drive/resizedImages_river/frame2.jpg'
config='configs/pwcnet/pwcnet_8x1_slong_flyingchairs_384x448.py'
checkpoint='checkpoints/pwcnet_8x1_slong_flyingchairs_384x448.pth'

parser.add_argument('img1', help='Image1 file')
parser.add_argument('img2', help='Image2 file')
parser.add_argument('--valid',help='Valid file. If the predicted flow is''sparse, valid mask will filter the output flow map.')
parser.add_argument('config', help='Config file')
parser.add_argument('checkpoint', help='Checkpoint file')
parser.add_argument('flow_map', help='Path of directory to save flow map and flow file')
parser.add_argument('--out_prefix',help='The prefix for the output results ''including flow file and visualized flow map',default='flow')
parser.add_argument('--device', default='cuda:0', help='Device used for inference')
args = parser.parse_args()
return args
def main(args):
    # build the model from a config file and a checkpoint file
  model = init_model(args.config, args.checkpoint, device=args.device)
# test a single image
result = inference_model(model, args.img1, args.img2)
result = inference_model(model, args.img1, args.img2, valids=args.valid)
# save the results
mmcv.mkdir_or_exist(args.flow_map)
visualize_flow(result, osp.join(args.flow_map, f'{args.out_prefix}.jpg'))

但是 google colab 显示错误消息如下:

colab_kernel_launcher.py:错误:需要以下参数:img1、img2、config、checkpoint、flow_map 发生异常,使用 %tb 查看完整的回溯。

系统退出:2

我在谷歌上搜索修复此错误,但没有找到任何解决方案。我感谢任何帮助

python google-colaboratory argparse
1个回答
0
投票

如果您不想从命令行运行它,那么只需通过提供对象中的所有参数来伪造它。

class Dummy:
     pass

from mmflow.datasets import visualize_flow, write_flow
args = Dummy()
args.img1='/content/drive/My Drive/resizedImages_river/frame1.jpg'
args.img2='/content/drive/My Drive/resizedImages_river/frame2.jpg'
args.config='configs/pwcnet/pwcnet_8x1_slong_flyingchairs_384x448.py'
args.checkpoint='checkpoints/pwcnet_8x1_slong_flyingchairs_384x448.pth'
args.flow_map=??????  # You must supply this
args.device = "cuda:0"
args.out_prefix = "flow"

model = init_model(args.config, args.checkpoint, device=args.device)
result = inference_model(model, args.img1, args.img2)
result = inference_model(model, args.img1, args.img2, valids=args.valid)
mmcv.mkdir_or_exist(args.flow_map)
visualize_flow(result, osp.join(args.flow_map, f'{args.out_prefix}.jpg'))
© www.soinside.com 2019 - 2024. All rights reserved.