opencv - 如何在 Colab 上使用 OpenCV 和 GPU?
问题描述
我正在尝试在 Colab 上使用 YOLOv4 进行人体检测。代码包括以下几行:
import cv2
net =cv2.dnn.readNetFromDarknet(yolo_config_path,yolo_weights_path)
if cuda:
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
但是,如果我直接在 Colab 上运行此单元格,则会遇到如下错误:
Traceback (most recent call last):
File "run_yolo.py", line 26, in <module>
net =cv2.dnn.readNetFromDarknet(yolo_config_path,yolo_weights_path)
cv2.error: OpenCV(4.1.2) /io/opencv/modules/dnn/src/darknet/darknet_io.cpp:554: error: (-212:Parsing error) Unsupported activation: mish in function 'ReadDarknetFromCfgStream'
我运行此单元以避免错误:
%cd /content
!git clone https://github.com/opencv/opencv
!git clone https://github.com/opencv/opencv_contrib
!mkdir /content/build
%cd /content/build
!cmake -DOPENCV_EXTRA_MODULES_PATH=/content/opencv_contrib/modules -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DWITH_OPENEXR=OFF -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DWITH_CUDNN=ON -DOPENCV_DNN_CUDA=ON /content/opencv
!make -j8 install
当我写下这一行时:
import cv2
cv2.__version__
结果是 4.5.1-dev。
但是当我运行代码时,cv2 是 OpenCV(4.1.2)。我怎么解决这个问题?
解决方案
如果要使用 Yolov4 或其他东西,请使用以下版本的 opencv:
!pip install opencv-contrib-python==3.4.13.47 --force-reinstall
推荐阅读
- javascript - JavaScript DOM 表操作
- sql - 在连续两年oracle sql中查找月份之间的差距
- excel - 有没有办法将可点击的超链接添加到 Excel 图表的数据标签?
- r - 将 filter、cross 和 starts_with 组合到 R 中跨列的字符串搜索
- angular - 角度错误 TS2564:属性“用户”没有初始值设定项,并且未在构造函数中明确分配
- google-sheets - Google 工作表:发布一些但不是所有工作表
- jquery - 跨两个手风琴的 Jquery 可排序元素
- javascript - Discord.js message.createdAt 时间和系统时间的区别
- python - 使用 pd.read_excel() 时,有没有办法解决 python 上的 ssl 错误(DH 密钥太小)?
- typescript - 在 Asp.Net Core 应用程序中从 TypeScript 引用 node_modules