Spaces:
Running
Running
Update files
Browse files- app.py +27 -10
- images/ch_en_num.jpg +0 -0
app.py
CHANGED
@@ -84,7 +84,24 @@ def visualize(image_path, boxes, txts, scores,
|
|
84 |
return image_save
|
85 |
|
86 |
|
87 |
-
def inference(img_path, box_thresh=0.5, unclip_ratio=1.6, text_score=0.5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
img = cv2.imread(img_path)
|
89 |
ocr_result, _ = rapid_ocr(img, box_thresh=box_thresh,
|
90 |
unclip_ratio=unclip_ratio,
|
@@ -99,8 +116,7 @@ def inference(img_path, box_thresh=0.5, unclip_ratio=1.6, text_score=0.5):
|
|
99 |
return img_save_path, output_text
|
100 |
|
101 |
|
102 |
-
|
103 |
-
examples = [['images/1.jpg']]
|
104 |
|
105 |
with gr.Blocks(title='RapidOCR') as demo:
|
106 |
gr.Markdown("""
|
@@ -112,10 +128,8 @@ with gr.Blocks(title='RapidOCR') as demo:
|
|
112 |
- **unclip_ratio**: 控制文本检测框的大小,值越大,检测框整体越大。在出现框截断文字的情况,调大该值。取值范围:[1.5, 2.0]
|
113 |
- **text_score**: 文本识别结果是正确的置信度,值越大,显示出的识别结果更准确。存在漏检时,调低该值。取值范围:[0, 1.0]
|
114 |
### 运行环境:
|
115 |
-
|
116 |
-
|
117 |
-
- rapidocr_onnxruntime: 1.2.5""")
|
118 |
-
gr.Markdown('### 超参数调节')
|
119 |
with gr.Row():
|
120 |
box_thresh = gr.Slider(minimum=0, maximum=1.0, value=0.5,
|
121 |
label='box_thresh', step=0.1,
|
@@ -130,7 +144,7 @@ with gr.Blocks(title='RapidOCR') as demo:
|
|
130 |
interactive=True,
|
131 |
info='[0, 1.0]')
|
132 |
|
133 |
-
gr.Markdown('
|
134 |
with gr.Row():
|
135 |
text_det = gr.Dropdown(['ch_PP-OCRv3_det_infer.onnx',
|
136 |
'ch_PP-OCRv2_det_infer.onnx',
|
@@ -138,6 +152,7 @@ with gr.Blocks(title='RapidOCR') as demo:
|
|
138 |
label='选择文本检测模型',
|
139 |
value='ch_PP-OCRv3_det_infer.onnx',
|
140 |
interactive=True)
|
|
|
141 |
text_rec = gr.Dropdown(['ch_PP-OCRv3_rec_infer.onnx',
|
142 |
'ch_PP-OCRv2_rec_infer.onnx',
|
143 |
'ch_ppocr_server_v2.0_rec_infer.onnx'],
|
@@ -151,9 +166,11 @@ with gr.Blocks(title='RapidOCR') as demo:
|
|
151 |
out_txt = gr.outputs.Textbox(type='text', label='RecText')
|
152 |
button = gr.Button('Submit')
|
153 |
button.click(fn=inference,
|
154 |
-
inputs=[input_img, box_thresh, unclip_ratio, text_score
|
|
|
155 |
outputs=[out_img, out_txt])
|
156 |
gr.Examples(examples=examples,
|
157 |
-
inputs=[input_img, box_thresh, unclip_ratio, text_score
|
|
|
158 |
outputs=[out_img, out_txt], fn=inference)
|
159 |
demo.launch(debug=True, enable_queue=True)
|
|
|
84 |
return image_save
|
85 |
|
86 |
|
87 |
+
def inference(img_path, box_thresh=0.5, unclip_ratio=1.6, text_score=0.5,
|
88 |
+
text_det=None, text_rec=None):
|
89 |
+
det_model_path = str(Path('models') / 'text_det' / text_det)
|
90 |
+
rec_model_path = str(Path('models') / 'text_rec' / text_rec)
|
91 |
+
if 'v2' in rec_model_path:
|
92 |
+
rec_image_shape = [3, 32, 320]
|
93 |
+
else:
|
94 |
+
rec_image_shape = [3, 48, 320]
|
95 |
+
|
96 |
+
print('Init Class')
|
97 |
+
s = time.time()
|
98 |
+
rapid_ocr = RapidOCR(det_model_path=det_model_path,
|
99 |
+
rec_model_path=rec_model_path,
|
100 |
+
rec_img_shape=rec_image_shape)
|
101 |
+
print(det_model_path, rec_model_path, rec_image_shape)
|
102 |
+
elapse = time.time() - s
|
103 |
+
print(elapse)
|
104 |
+
|
105 |
img = cv2.imread(img_path)
|
106 |
ocr_result, _ = rapid_ocr(img, box_thresh=box_thresh,
|
107 |
unclip_ratio=unclip_ratio,
|
|
|
116 |
return img_save_path, output_text
|
117 |
|
118 |
|
119 |
+
examples = [['images/1.jpg'], ['images/ch_en_num.jpg']]
|
|
|
120 |
|
121 |
with gr.Blocks(title='RapidOCR') as demo:
|
122 |
gr.Markdown("""
|
|
|
128 |
- **unclip_ratio**: 控制文本检测框的大小,值越大,检测框整体越大。在出现框截断文字的情况,调大该值。取值范围:[1.5, 2.0]
|
129 |
- **text_score**: 文本识别结果是正确的置信度,值越大,显示出的识别结果更准确。存在漏检时,调低该值。取值范围:[0, 1.0]
|
130 |
### 运行环境:
|
131 |
+
Python: 3.8 | onnxruntime: 1.14.1 | rapidocr_onnxruntime: 1.2.5""")
|
132 |
+
gr.Markdown('**超参数调节**')
|
|
|
|
|
133 |
with gr.Row():
|
134 |
box_thresh = gr.Slider(minimum=0, maximum=1.0, value=0.5,
|
135 |
label='box_thresh', step=0.1,
|
|
|
144 |
interactive=True,
|
145 |
info='[0, 1.0]')
|
146 |
|
147 |
+
gr.Markdown('**模型选择**')
|
148 |
with gr.Row():
|
149 |
text_det = gr.Dropdown(['ch_PP-OCRv3_det_infer.onnx',
|
150 |
'ch_PP-OCRv2_det_infer.onnx',
|
|
|
152 |
label='选择文本检测模型',
|
153 |
value='ch_PP-OCRv3_det_infer.onnx',
|
154 |
interactive=True)
|
155 |
+
|
156 |
text_rec = gr.Dropdown(['ch_PP-OCRv3_rec_infer.onnx',
|
157 |
'ch_PP-OCRv2_rec_infer.onnx',
|
158 |
'ch_ppocr_server_v2.0_rec_infer.onnx'],
|
|
|
166 |
out_txt = gr.outputs.Textbox(type='text', label='RecText')
|
167 |
button = gr.Button('Submit')
|
168 |
button.click(fn=inference,
|
169 |
+
inputs=[input_img, box_thresh, unclip_ratio, text_score,
|
170 |
+
text_det, text_rec],
|
171 |
outputs=[out_img, out_txt])
|
172 |
gr.Examples(examples=examples,
|
173 |
+
inputs=[input_img, box_thresh, unclip_ratio, text_score,
|
174 |
+
text_det, text_rec],
|
175 |
outputs=[out_img, out_txt], fn=inference)
|
176 |
demo.launch(debug=True, enable_queue=True)
|
images/ch_en_num.jpg
ADDED
![]() |