Добрый день, я новичок в python, и в настоящее время я пытаюсь работать с моим назначением обнаружения объектов.В настоящее время я работаю с фильтрами и веду подсчет обнаруженных объектов.Например, у меня есть 3 возвращаемые переменные, такие как блоки (появившиеся ограничивающие рамки для подсчета), classId и достоверность (для определения классов объектов иего вероятность) с
print (len(boxes),classId,confidence)
и я получил такие значения (1 секунда для 50+ значений)
(1, 'Sunbear', 0.91407496)
(1, 'Sunbear', 0.93277943)
(1, 'Sunbear', 0.8578589)
(2, 'Sunbear', 0.29979056)
(1, 'Sunbear', 0.8787856)
(2, 'Sunbear', 0.32679325)
(1, 'Sunbear', 0.79356045)
Вот что я хотел сделать:
Взять значения большинства, которые появились для каждых 10 (или более) возвращаемых значений для блоков, classId и trust (среднее значение для этого), чтобы исключить случайные колебания.Вот часть моих кодов,
classIds = []
confidences = []
boxes = []
for out in outs:
for detection in out:
scores = detection[5:]
classId = np.argmax(scores)
confidence = scores[classId]
if confidence > confThreshold:
center_x = int(detection[0] * frameWidth)
center_y = int(detection[1] * frameHeight)
width = int(detection[2] * frameWidth)
height = int(detection[3] * frameHeight)
left = int(center_x - width / 2)
top = int(center_y - height / 2)
classIds.append(classId)
confidences.append(float(confidence))
boxes.append([left, top, width, height])
if classId ==0:
classId = 'Asian_elephant'
elif classId ==1:
classId = 'Sunbear'
elif classId ==2:
classId = 'Tapir'
#print ()
#logging.debug('%s %s %s', len(boxes), confidence,classId)
#logging.debug(boxes)
print ((len(boxes),classId,confidence))
Вот что я пытаюсь сделать:
Если classId для Sunbear появлялся 5 или более раз непрерывно , он будет печатать возвращенные значения и счетчик будет сбрасываться обратно до 0, иначе он будет продолжать сбрасываться в ноль до тех пор, пока не будет выполнено условие.
count=0
while classId=='Sunbear':
count+=1
if count>=5:
print ((len(boxes),classId,confidence))
break
но каким-то образом возвращаемые значения являютсято же самое внутри или вне цикла.Это правильный способ сделать это, или есть более эффективные способы сделать это.Пожалуйста, потерпите меня, я новичок в программировании, заранее спасибо.