Spaces:
Running
Running
# Copyright (c) OpenMMLab. All rights reserved. | |
from typing import Dict | |
import numpy as np | |
from mmocr.structures import TextRecogDataSample | |
from .base_mmocr_inferencer import BaseMMOCRInferencer | |
class TextRecInferencer(BaseMMOCRInferencer): | |
"""Text Recognition inferencer. | |
Args: | |
model (str, optional): Path to the config file or the model name | |
defined in metafile. For example, it could be | |
"crnn_mini-vgg_5e_mj" or | |
"configs/textrecog/crnn/crnn_mini-vgg_5e_mj.py". | |
If model is not specified, user must provide the | |
`weights` saved by MMEngine which contains the config string. | |
Defaults to None. | |
weights (str, optional): Path to the checkpoint. If it is not specified | |
and model is a model name of metafile, the weights will be loaded | |
from metafile. Defaults to None. | |
device (str, optional): Device to run inference. If None, the available | |
device will be automatically used. Defaults to None. | |
scope (str, optional): The scope of the model. Defaults to "mmocr". | |
""" | |
def pred2dict(self, data_sample: TextRecogDataSample) -> Dict: | |
"""Extract elements necessary to represent a prediction into a | |
dictionary. It's better to contain only basic data elements such as | |
strings and numbers in order to guarantee it's json-serializable. | |
Args: | |
data_sample (TextRecogDataSample): The data sample to be converted. | |
Returns: | |
dict: The output dictionary. | |
""" | |
result = {} | |
result['text'] = data_sample.pred_text.item | |
score = self._array2list(data_sample.pred_text.score) | |
result['scores'] = float(np.mean(score)) | |
return result | |