12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import numpy as np
- from itertools import chain
- from mdutils.mdutils import MdUtils
- from YQ_OCR.utils.datasets import Dataset
- from YQ_OCR.utils.text2md import TableMD
- from YQ_OCR.utils.utils import *
- # 1. xlsx -> 正确json文件(写入厂家信息)
- # 2. 发送图片(带正确json文件)
- # 3. 把返回的json 和正确的json 进行对比(有key--用返回结果与正确结果比对,无key--用正确结果与返回结果比对)
- if __name__ == '__main__':
- img_paths = chain(*[Path(imgs_path).rglob(f'*.{ext}') for ext in ['jpg', 'png', 'jpeg']])
- all_rate = []
- table_mean_acc = []
- for img_path in img_paths:
- print(img_path)
- true_d, true_json = open_true_json(img_path.with_suffix('.json'))
- result = send_request(img_path, true_json)
- res_d = parse_result(result)
- markdown = TableMD(img_path.name)
- markdown.write_header(title='推理结果', level=2)
- # json result
- rate, statistics = markdown.evaluate_one(true_d, res_d)
- all_rate.append(rate)
- print(f'文字识别正确率:{rate:.2f}%')
- # table gt result
- dataset = Dataset(gt_file=img_path.with_suffix('.txt'), img_name=img_path.name, results=res_d)
- markdown.write_table_accuracy(ds=dataset, key='new')
- table_acc = markdown.get_table_accuracy()
- table_mean_acc.append(table_acc)
- print(f'表格识别正确率:{table_acc:.2f}%')
- markdown.f.create_md_file()
- print('----------------------------------------')
- all_rate = "{:.2f}%".format(np.mean(all_rate))
- all_table_rate = "{:.2f}%".format(np.mean(table_mean_acc))
- print(f'文字识别总体正确率:{all_rate}')
- print(f'表格识别总体正确率:{all_table_rate}')
|