YOLO v3 的 OpenCV 实现在 GCP 实例上重现异常

OpenCV implementation of YOLO v3 reproduces Exception on a GCP instance

我已经使用来自 OpenCV 4.0.0.21 的 YOLO v3 模型成功实现了视频对象检测。它在本地机器上 运行 成功,所以我想在 Google 云平台实例上测试它。

我克隆了我的项目,从源代码构建了 OpenCV 并启动了 YOLO v3 对象检测。不过,这次我在 Darknet 初始化步骤中发现了一个异常:

net = cv2.dnn.readNetFromDarknet(cfg_path, weights_path)

这也是回溯:

Traceback (most recent call last):

  File "/home/username/path_to_app/yolo_object_detection.py", 
line 21, in run_detection:
    net = cv2.dnn.readNetFromDarknet(cfg_path, weights_path)
  cv2.error: OpenCV(4.0.0) /home/username/opencv-
  4.0.0/modules/dnn/src/darknet/darknet_io.cpp:690: 

  error: (-213:The function/feature is not implemented)
  Transpose the weights (except for convolutional) 
  is not implemented in function 'ReadDarknetFromWeightsStream'

这是什么原因,我该如何克服这个异常?

我不太确定,但看起来 yolov3.weights 文件没有正确存储在 Github 上(原因可能超过 100MB)。但是获得不同的权重文件对我有用:

!wget "https://pjreddie.com/media/files/yolov3.weights"

参考: https://colab.research.google.com/drive/1EjN6PrqXABZApL2GmlegOeLhhwmtWrlJ