1313# limitations under the License.
1414
1515from ....modules .text_recognition .model_list import MODELS
16+ from ....utils .fonts import (
17+ ARABIC_FONT ,
18+ CYRILLIC_FONT ,
19+ DEVANAGARI_FONT ,
20+ KANNADA_FONT ,
21+ KOREAN_FONT ,
22+ LATIN_FONT ,
23+ SIMFANG_FONT ,
24+ TAMIL_FONT ,
25+ TELUGU_FONT ,
26+ )
1627from ....utils .func_register import FuncRegister
1728from ...common .batch_sampler import ImageBatchSampler
1829from ...common .reader import ReadImage
@@ -31,6 +42,7 @@ class TextRecPredictor(BasePredictor):
3142 def __init__ (self , * args , input_shape = None , ** kwargs ):
3243 super ().__init__ (* args , ** kwargs )
3344 self .input_shape = input_shape
45+ self .vis_font = self .get_vis_font ()
3446 self .pre_tfs , self .infer , self .post_op = self ._build ()
3547
3648 def _build_batch_sampler (self ):
@@ -68,6 +80,7 @@ def process(self, batch_data):
6880 "input_img" : batch_raw_imgs ,
6981 "rec_text" : texts ,
7082 "rec_score" : scores ,
83+ "vis_font" : [self .vis_font ] * len (batch_raw_imgs ),
7184 }
7285
7386 @register ("DecodeImage" )
@@ -76,7 +89,7 @@ def build_readimg(self, channel_first, img_mode):
7689 return "Read" , ReadImage (format = img_mode )
7790
7891 @register ("RecResizeImg" )
79- def build_resize (self , image_shape ):
92+ def build_resize (self , image_shape , ** kwargs ):
8093 return "ReisizeNorm" , OCRReisizeNormImg (
8194 rec_image_shape = image_shape , input_shape = self .input_shape
8295 )
@@ -96,3 +109,40 @@ def foo(self, *args, **kwargs):
96109 @register ("KeepKeys" )
97110 def foo (self , * args , ** kwargs ):
98111 return None , None
112+
113+ def get_vis_font (self ):
114+ if self .model_name .startswith ("PP-OCR" ):
115+ return SIMFANG_FONT
116+
117+ if self .model_name in (
118+ "latin_PP-OCRv3_mobile_rec" ,
119+ "latin_PP-OCRv5_mobile_rec" ,
120+ ):
121+ return LATIN_FONT
122+
123+ if self .model_name in (
124+ "cyrillic_PP-OCRv3_mobile_rec" ,
125+ "eslav_PP-OCRv5_mobile_rec" ,
126+ ):
127+ return CYRILLIC_FONT
128+
129+ if self .model_name in (
130+ "korean_PP-OCRv3_mobile_rec" ,
131+ "korean_PP-OCRv5_mobile_rec" ,
132+ ):
133+ return KOREAN_FONT
134+
135+ if self .model_name == "arabic_PP-OCRv3_mobile_rec" :
136+ return ARABIC_FONT
137+
138+ if self .model_name == "ka_PP-OCRv3_mobile_rec" :
139+ return KANNADA_FONT
140+
141+ if self .model_name == "te_PP-OCRv3_mobile_rec" :
142+ return TELUGU_FONT
143+
144+ if self .model_name == "ta_PP-OCRv3_mobile_rec" :
145+ return TAMIL_FONT
146+
147+ if self .model_name == "devanagari_PP-OCRv3_mobile_rec" :
148+ return DEVANAGARI_FONT
0 commit comments