OpenCV 3.2 dnn 模块问题

问题描述

我正在尝试使用 opencv 制作对象检测系统,但下面有问题。

cae@cae-A9TB7HCGN:~$ python "/home/cae/Desktop/import cv2.py"
Traceback (most recent call last):
  File "/home/cae/Desktop/import cv2.py",line 5,in <module>
    net = cv2.dnn.readNet("weights/yolov3.weights","cfg/yolov3.cfg")
AttributeError: 'module' object has no attribute 'dnn'

我该如何解决这个问题? 下面是我的代码

import cv2
import numpy as np

# Load Yolo
net = cv2.dnn.readNet("weights/yolov3.weights","cfg/yolov3.cfg")
classes = []
with open("coco.names","r") as f:
    classes = [line.strip() for line in f.readlines()]

print(classes)

我的开发环境是ubuntu 18.04,ROS melodic,opencv3.2

解决方法

你能不能试试:

net = cv2.dnn_DetectionModel("weights/yolov3.weights","cfg/yolov3.cfg")

如果这不起作用,您应该升级到 OpenCV 3.3 或更高版本(我建议至少使用 OpenCV 4.2)。