in lmms_eval/tasks/ocrbench/utils.py [0:0]
def ocrbench_aggregate_accuracy(results, args):
for result in results:
OCRBench_score[result["question_type"]] += result["score"]
recognition_score = (
OCRBench_score["Regular Text Recognition"]
+ OCRBench_score["Irregular Text Recognition"]
+ OCRBench_score["Artistic Text Recognition"]
+ OCRBench_score["Handwriting Recognition"]
+ OCRBench_score["Digit String Recognition"]
+ OCRBench_score["Non-Semantic Text Recognition"]
)
Final_score = recognition_score + OCRBench_score["Scene Text-centric VQA"] + OCRBench_score["Doc-oriented VQA"] + OCRBench_score["Key Information Extraction"] + OCRBench_score["Handwritten Mathematical Expression Recognition"]
file_name = generate_submission_file("ocrbench_results.txt", args, subpath="results")
with open(file_name, "w") as f:
print("######################### OCRBench #############################", file=f)
print(f"Text Recognition(Total 300): {recognition_score}", file=f)
print("---------------- Details of Recognition Score ------------------", file=f)
print(f"Regular Text Recognition(Total 50): {OCRBench_score['Regular Text Recognition']}", file=f)
print(f"Irregular Text Recognition(Total 50): {OCRBench_score['Irregular Text Recognition']}", file=f)
print(f"Artistic Text Recognition(Total 50): {OCRBench_score['Artistic Text Recognition']}", file=f)
print(f"Handwriting Recognition(Total 50): {OCRBench_score['Handwriting Recognition']}", file=f)
print(f"Digit String Recognition(Total 50): {OCRBench_score['Digit String Recognition']}", file=f)
print(f"Non-Semantic Text Recognition(Total 50): {OCRBench_score['Non-Semantic Text Recognition']}", file=f)
print("----------------------------------------------------------------", file=f)
print(f"Scene Text-centric VQA(Total 200): {OCRBench_score['Scene Text-centric VQA']}", file=f)
print("----------------------------------------------------------------", file=f)
print(f"Doc-oriented VQA(Total 200): {OCRBench_score['Doc-oriented VQA']}", file=f)
print("----------------------------------------------------------------", file=f)
print(f"Key Information Extraction(Total 200): {OCRBench_score['Key Information Extraction']}", file=f)
print("----------------------------------------------------------------")
print(f"Handwritten Mathematical Expression Recognition(Total 100): {OCRBench_score['Handwritten Mathematical Expression Recognition']}", file=f)
print("--------------------- Final Score ------------------------------", file=f)
print(f"Final Score(Total 1000): {Final_score}", file=f)
logger.info(f"OCR Bench results saved to {file_name}")
# return {"Final Score":Final_score,"Text Recognition":recognition_score,'Scene Text-centric VQA':OCRBench_score['Scene Text-centric VQA'],'Doc-oriented VQA':OCRBench_score['Doc-oriented VQA'],'Key Information Extraction':OCRBench_score['Key Information Extraction'],'Handwritten Mathematical Expression Recognition':OCRBench_score['Handwritten Mathematical Expression Recognition']}
return Final_score