You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
1.0 KiB
Python

def analysis_yolov8(frame, model_coco, confidence):
# 第一步用COCO数据集推理
results_coco = model_coco(frame)
if not results_coco:
return []
boxes = results_coco[0].boxes
person_result_list = []
head_result_list = []
phone_result_list = []
for box in boxes:
labels_name = model_coco.names[int(box.cls)]
if labels_name == 'person':
if float(box.conf) >= confidence['person']:
label_xyxy_dict = {labels_name: box.xyxy[0].tolist()}
person_result_list.append(label_xyxy_dict)
elif labels_name == 'head':
if float(box.conf) >= confidence['head']:
label_xyxy_dict = {labels_name: box.xyxy[0].tolist()}
head_result_list.append(label_xyxy_dict)
else:
if float(box.conf) >= confidence['phone']:
label_xyxy_dict = {labels_name: box.xyxy[0].tolist()}
phone_result_list.append(label_xyxy_dict)
return person_result_list,head_result_list,phone_result_list