all!我正在从事物体检测和计算机视觉相关的任务。对于特定的应用程序,我想使用YOLO 9000型号,但我无法像通常使用标准YOLO型号那样将其与DarkNet一起使用。我使用这个代码脚本:
import cv2 as cv
import numpy as np
import time
from matplotlib import pyplot as plt
%matplotlib inline
img = cv.imread('image.jpg')
classes = open('yolo-9000/darknet/data/9k.names').read().strip().split('n')
np.random.seed(42)
colors = np.random.randint(0, 255, size=(len(classes), 3), dtype='uint8')
net = cv.dnn.readNetFromDarknet('yolo-9000/darknet/cfg/yolo9000.cfg', 'yolo-9000/yolo9000-weights/yolo9000.weights')
ln = net.getLayerNames()
ln = [ln[i - 1] for i in net.getUnconnectedOutLayers()]
blob = cv.dnn.blobFromImage(img, 1/255.0, (416, 416), swapRB=True, crop=False)
r = blob[0, 0, :, :]
net.setInput(blob)
outputs = net.forward(ln)
它适用于yolov3文件,但当我运行这个代码块时,它会给我提供以下错误:
error: OpenCV(4.5.4) /tmp/pip-req-build-3129w7z7/opencv/modules/dnn/src/layers/region_layer.cpp:101: error: (-213:The function/feature is not implemented) Yolo9000 is not implemented in function 'RegionLayerImpl'
你有什么想法让我克服这个错误,从YOLO 9000获得边界框吗?我会感谢你的帮助并提前表示感谢!
"未实施";
OpenCV不支持yolo9000.cfg
详细信息:https://github.com/opencv/opencv/pull/9705
这是我发现的唯一一个提到yolo9000
的问题。
您可以向OpenCV添加一个实现。或者你可以要求一个。或者你可以看看是否有其他库可以运行yolo9000(你使用python,所以我会看看pytorch和tensorflow)。