Python:如何从列表元素中提取索引

时间:2019-07-14 19:14:17

标签: python arrays numpy opencv yolo

我正在尝试使用YOLO从图像中提取边界框。 因此,我有一个包含3个元素的列表,每个元素都是一个形状数组:(255,26,26),(255,52,52),(255,13,13)。

我想将array(255)的第一个元素减少到最后250个元素,并提取最大值。

我尝试使用以下代码,但索引值很高,我也不知道为什么。

我收到此错误:

  

信心=得分[classID]   IndexError:索引56097超出了轴250的大小250

image = cv.imread(some image)

ln = net.getLayerNames()
ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]

blob = cv.dnn.blobFromImage(cv.resize(image,(416, 416)),1 / 255.0, (416, 416),swapRB=True, crop=False)

net.setInput(blob)
layerOutputs = net.forward(ln)

boxes = []
confidences = []
classIDs = []

for output in layerOutputs:

    for detection in output:

        print(detection.shape)

        scores = detection[5:]
        classID = np.argmax(scores)

        print(scores.shape)
        print(classID)

        confidence = scores[classID]

我希望classID输出在0到249之间,并且第一次迭代得到56097。 对于其他迭代,我也获得了很高的价值:

没有此代码行的输出

  

信心=得分[classID]

(255, 26, 26)
(250, 26, 26)
56097
(255, 52, 52)
(250, 52, 52)
454245
(255, 13, 13)
(250, 13, 13)
13570

0 个答案:

没有答案