Python 如何修复对象检测应用程序中的ValueError?

Python 如何修复对象检测应用程序中的ValueError?,python,opencv,computer-vision,python-3.6,onnxruntime,Python,Opencv,Computer Vision,Python 3.6,Onnxruntime,我正在尝试使用onnxruntime和opencv将边界框添加到图像中,以便使用神经网络检测对象。相反,我在运行时得到一个错误 我将输入图像转换为兼容的tensor/numpy数组以输入模型。一旦我知道一切都能完美地工作,没有bug,我就添加了以下代码来添加边界框: 尽管如此: 灰色=cv2.CVT颜色(img,cv2.COLOR\U BGR2GRAY) 对于pred_onnx中的x、y、w、h: cv2.矩形(img,(x,y),(x+w,y+h),(0255,0),2) roiGray=灰

我正在尝试使用onnxruntime和opencv将边界框添加到图像中,以便使用神经网络检测对象。相反,我在运行时得到一个错误

我将输入图像转换为兼容的tensor/numpy数组以输入模型。一旦我知道一切都能完美地工作,没有bug,我就添加了以下代码来添加边界框:


尽管如此:
灰色=cv2.CVT颜色(img,cv2.COLOR\U BGR2GRAY)
对于pred_onnx中的x、y、w、h:
cv2.矩形(img,(x,y),(x+w,y+h),(0255,0),2)
roiGray=灰色[y:y+h,x:x+w]
roiColor=img[y:y+h,x:x+w]
cv2.imshow(“检测”,cv2.resize(img,(500500)))
cv2.等待键(0)
我希望图像显示(绿色)边界框。相反,我得到了以下错误:

File "C:\Users\MyName\Desktop\OnnxCV\onnxcv\object_detector.py", line 27, in <module>
    for x, y, w, h in pred_onnx:
ValueError: not enough values to unpack (expected 4, got 1)
文件“C:\Users\MyName\Desktop\OnnxCV\OnnxCV\object\u detector.py”,第27行,在
对于pred_onnx中的x、y、w、h:
ValueError:没有足够的值来解包(预期值为4,实际值为1)

如果有帮助的话,完整的代码就是。

pred\u onnx数组的形状不是当前代码所期望的形状——还有一些后处理要做。有关输出的详细信息,请参阅

例如,使用链接帖子建议的30%阈值,可以循环并过滤边界框,如下所示:

for r in range(13):
    for c in range(13):
        confidence = pred_onnx[0, 4, r, c]
        if confidence < 0.3:
            continue
        x = pred_onnx[0, 0, r, c]
        y = pred_onnx[0, 1, r, c]
        w = pred_onnx[0, 2, r, c]
        h = pred_onnx[0, 3, r, c]
        ...
范围(13)内r的
:
对于范围(13)内的c:
置信度=pred_onnx[0,4,r,c]
如果置信度<0.3:
持续
x=pred_onnx[0,0,r,c]
y=pred_onnx[0,1,r,c]
w=pred_onnx[0,2,r,c]
h=pred_onnx[0,3,r,c]
...