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