`AttributeError` 在 Google Colab 中构建 `torchvision.io.VideoReader`

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

我正在尝试编写一个程序,该程序将使用

torchvision.io.VideoReader
从一组视频文件中提取许多静态图像。 该程序预计将在 Google Colab 上运行。 不幸的是,尽管 torchvision 0.18.0 在 Colab 的运行时上可用,但当我尝试创建 VideoReader 对象时,我收到一个
AttributeError
并显示消息
'ImportError' object has no attribute 'open'

我的 Colab 笔记本的完整代码:

import torch
import torchvision
import os
from google.colab import drive

driveLoc = '/content/drive'

if os.path.exists(driveLoc):
  print ("Drive already mounted")
else:
  print ("Mounting drive")
  drive.mount(driveLoc)

vpath = driveLoc + "/MyDrive/videos"
datafiles = os.listdir(vpath)
for f in datafiles:
  if not os.path.isfile(vpath+"/"+f):
    continue
  print (f)

  video = torchvision.io.VideoReader(vpath+"/"+f, "video")
  print (video.get_metadata())

完整追溯:

AttributeError                            Traceback (most recent call last)

<ipython-input-7-1051bd84b049> in <cell line: 16>()
     19   print (f)
     20 
---> 21   video = torchvision.io.VideoReader(vpath+"/"+f, "video")
     22   print (video.get_metadata())
     23 

/usr/local/lib/python3.10/dist-packages/torchvision/io/video_reader.py in __init__(self, src, stream, num_threads)
    157 
    158         elif self.backend == "pyav":
--> 159             self.container = av.open(src, metadata_errors="ignore")
    160             # TODO: load metadata
    161             stream_type = stream.split(":")[0]

AttributeError: 'ImportError' object has no attribute 'open'

只需在默认的 Colab 运行时上运行它,无需安装额外的软件包。我想我需要安装其他东西,但错误没有给我任何线索......

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

此错误是由于导入 torchvision 时系统上没有安装足够新版本的 PyAV 导致的。 在文件顶部添加

!pip install av
解决了我的问题(尽管现在我正在努力解决这个问题!)。

© www.soinside.com 2019 - 2024. All rights reserved.