Hi , I have error related to object detection project

Viewed 6503

I have error related to simple object detection .

output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
IndexError: invalid index to scalar variable.

import cv2.cv2 as cv
import numpy as np

# Load Yolo

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

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

 #Loading image

 img = cv.imread("room_ser.jpg")

cv.imshow("Image",img)
cv.waitKey(0)
cv.destroyAllWindows()
1 Answers

getUnconnectedOutLayers() returns an integer, not an iterable. Instead, use

outputlayers = [layer_names[i-1] for i in net.getUnconnectedOutLayers()]

The examples shown here are incorrect. More information on the method can be found on the cv2 docs here.

The error itself (IndexError) tells you that you are trying to index something that is a scalar.

Related