zhouyik's picture
Upload folder using huggingface_hub
032e687 verified
import argparse
from pycocotools.coco import COCO
from pycocoevalcap.eval import COCOEvalCap
def parse_args():
parser = argparse.ArgumentParser(description="GLaMM Inference - Region Captioning")
parser.add_argument("--annotation_file",
default="./data/region_caption/mdetr_annotations/finetune_refcocog_val_captions.json", type=str,
help="Replace with 'data/visual_genome/test_caption.json' for VG.")
parser.add_argument("--results_dir", default="results", type=str, help="The path to save the results.")
return parser.parse_args()
def main():
args = parse_args()
# Load the annotation file
coco = COCO(args.annotation_file)
coco_result = coco.loadRes(args.results_dir)
# Create coco_eval object by taking coco and coco_result
coco_eval = COCOEvalCap(coco, coco_result)
# Evaluate results
coco_eval.params['image_id'] = coco_result.getImgIds()
coco_eval.evaluate()
# Print and save the output evaluation scores
output_file_path = f"./region_cap_metrics.txt"
f = open(output_file_path, 'w')
for metric, score in coco_eval.eval.items():
print(f'{metric}: {score:.3f}')
f.write(f"{metric}: {score:.3f}\n")
f.close()
if __name__ == "__main__":
main()