| 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['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()] |
| |
| 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 |
| |
| |
| 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 |
|
|
|
|