Spaces:
Runtime error
Runtime error
| import json | |
| import numpy as np | |
| import pdb | |
| dict_pred = {0: 'animal', 1: 'person', 2: 'vehicle'} | |
| def save_results(md_results, dlc_outputs,map_label_id_to_str,thr,output_file = 'dowload_predictions.json'): | |
| """ | |
| write json | |
| """ | |
| info = {} | |
| ## info megaDetector | |
| info['file']= md_results.files[0] | |
| number_bb = len(md_results.xyxy[0].tolist()) | |
| info['number_of_bb'] = number_bb | |
| number_bb_thr = len(dlc_outputs) | |
| labels = [n for n in map_label_id_to_str.values()] | |
| #pdb.set_trace() | |
| new_index = [] | |
| for i in range(number_bb): | |
| corner_x1,corner_y1,corner_x2,corner_y2,confidence, _ = md_results.xyxy[0].tolist()[i] | |
| if confidence > thr: | |
| new_index.append(i) | |
| for i in range(number_bb_thr): | |
| aux={} | |
| corner_x1,corner_y1,corner_x2,corner_y2,confidence, _ = md_results.xyxy[0].tolist()[new_index[i]] | |
| aux['corner_1'] = (corner_x1,corner_y1) | |
| aux['corner_2'] = (corner_x2,corner_y2) | |
| aux['predict MD'] = md_results.names[0] | |
| aux['confidence MD'] = confidence | |
| ## info dlc | |
| kypts = [] | |
| for s in dlc_outputs[i]: | |
| aux1 = [] | |
| for j in s: | |
| aux1.append(float(j)) | |
| kypts.append(aux1) | |
| aux['dlc_pred'] = dict(zip(labels,kypts)) | |
| info['bb_' + str(new_index[i]) ]=aux | |
| with open(output_file, 'w') as f: | |
| json.dump(info, f, indent=1) | |
| print('Output file saved at {}'.format(output_file)) | |
| return output_file | |