【问题标题】:can't open camera by index in Colab无法在 Colab 中按索引打开相机
【发布时间】:2022-08-18 21:42:48
【问题描述】:

我正在使用https://github.com/theAIGuysCode/yolov4-custom-functions 这个存储库。我想在网络摄像头上运行时裁剪和保存图片。我正在使用 Colab。但是当我运行以下代码时:

!python detect_video.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --video 0 --output ./detections/results2.avi --crop

然后它说:

[ WARN:0@5.489] global /io/opencv/modules/videoio/src/cap_v4l.cpp (902) open VIDEOIO(V4L2:/dev/video0): can\'t open camera by index
Video has ended or failed, try a different video format!

我知道问题在于在 Colab 中打开相机。但我找不到如何解决它。

  • Colab 在远程服务器中运行您的代码,您不能使用本地网络摄像头,因为它实际上没有连接到远程服务器。
  • 我看到一个 Colab 笔记本是这样的:colab.research.google.com/drive/… 但我不知道这是否具有适应性。

标签: python tensorflow yolo yolov4


【解决方案1】:

如果您能够以某种方式通过 Colab 使用网络摄像头,请确保 cv2 支持来自您的摄像头的视频流格式。 我有一个快速的look,显然只支持.avi。因此,请确保您的输入是 avi 格式。

查看您链接的detect_video.py 文件,在这段代码中会出现错误:

# begin video capture
try:
    vid = cv2.VideoCapture(int(video_path))
except:
    vid = cv2.VideoCapture(video_path)

...

while True:
    return_value, frame = vid.read()
    if return_value:
        ...
    else:
        print('Video has ended or failed, try a different video format!')
        break

这意味着cv2.VideoCapture() 无法读取您的输入。

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 1970-01-01
    • 2021-08-21
    • 2022-12-03
    • 2022-09-29
    • 2019-01-07
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多