#!/usr/bin/env python # coding: utf-8 # In[1]: import json import logging import faster_coco_eval from faster_coco_eval import COCO, COCOeval_faster from faster_coco_eval.extra import Curves print(f"{faster_coco_eval.__version__=}") logging.root.setLevel("INFO") logging.debug("Запись.") # In[2]: prepared_coco_in_dict = COCO.load_json("../tests/synth_test_dataset/test.json") prepared_anns = COCO.load_json("../tests/synth_test_dataset/result_data.json") # In[3]: iouType = "keypoints" # In[4]: cocoGt = COCO(prepared_coco_in_dict) cocoDt = cocoGt.loadRes(prepared_anns) cocoEval = COCOeval_faster( cocoGt, cocoDt, iouType, extra_calc=True, kpt_oks_sigmas=[0.01] * 4 ) cocoEval.evaluate() cocoEval.accumulate() cocoEval.summarize() # In[5]: cocoEval.stats_as_dict # In[6]: cur = Curves(cocoGt, cocoDt, iouType=iouType, kpt_oks_sigmas=[0.025] * 4) cur.plot_ced_metric() cur.plot_f1_confidence() # In[7]: from faster_coco_eval.extra import PreviewResults preview = PreviewResults(cur.cocoGt, cur.cocoDt, iouType=iouType, kpt_oks_sigmas=[0.01] * 4) # In[8]: imgs = [] for img_id, anns in cur.cocoDt.img_ann_map.items(): for ann in anns: if ann.get("mae", 0) > 3.5: imgs.append([img_id, ann.get("mae", 0)]) imgs.sort(key=lambda x: x[1], reverse=True) print(imgs) imgs = [i[0] for i in imgs] imgs # In[9]: preview.display_tp_fp_fn( data_folder="../tests/synth_test_dataset/", image_ids=imgs, display_gt=True, ) # In[ ]: