中文
Browse files
app.py
CHANGED
|
@@ -120,7 +120,8 @@ class PaddleOCRModelManager(object):
|
|
| 120 |
def create_model(lang):
|
| 121 |
# 为中文模型添加特殊参数,提高中文识别准确性
|
| 122 |
if lang == "ch":
|
| 123 |
-
|
|
|
|
| 124 |
else:
|
| 125 |
return PaddleOCR(lang=lang, use_angle_cls=True, use_gpu=False)
|
| 126 |
|
|
@@ -246,13 +247,33 @@ def inference(img, return_text_only=True):
|
|
| 246 |
# 读取图像用于绘制
|
| 247 |
pil_img = Image.open(img_path).convert("RGB")
|
| 248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 249 |
if return_text_only:
|
| 250 |
# 仅返回文本
|
| 251 |
return "\n".join(txts), LANG_MAP.get(lang, lang)
|
| 252 |
else:
|
| 253 |
# 返回带标注的图像
|
| 254 |
-
|
| 255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
|
| 257 |
finally:
|
| 258 |
# 清理临时文件
|
|
|
|
| 120 |
def create_model(lang):
|
| 121 |
# 为中文模型添加特殊参数,提高中文识别准确性
|
| 122 |
if lang == "ch":
|
| 123 |
+
# 不指定自定义字典路径,使用PaddleOCR内置的默认字典
|
| 124 |
+
return PaddleOCR(lang=lang, use_angle_cls=True, use_gpu=False)
|
| 125 |
else:
|
| 126 |
return PaddleOCR(lang=lang, use_angle_cls=True, use_gpu=False)
|
| 127 |
|
|
|
|
| 247 |
# 读取图像用于绘制
|
| 248 |
pil_img = Image.open(img_path).convert("RGB")
|
| 249 |
|
| 250 |
+
# 尝试查找simfang.ttf字体文件
|
| 251 |
+
font_path = "./simfang.ttf"
|
| 252 |
+
if not os.path.exists(font_path):
|
| 253 |
+
# 尝试在其他可能的位置查找
|
| 254 |
+
possible_paths = [
|
| 255 |
+
"./doc/fonts/simfang.ttf",
|
| 256 |
+
"/usr/local/lib/python3.10/site-packages/paddleocr/doc/fonts/simfang.ttf",
|
| 257 |
+
"/usr/local/lib/python3.10/site-packages/paddleocr/ppocr/utils/fonts/simfang.ttf"
|
| 258 |
+
]
|
| 259 |
+
|
| 260 |
+
for path in possible_paths:
|
| 261 |
+
if os.path.exists(path):
|
| 262 |
+
font_path = path
|
| 263 |
+
break
|
| 264 |
+
|
| 265 |
if return_text_only:
|
| 266 |
# 仅返回文本
|
| 267 |
return "\n".join(txts), LANG_MAP.get(lang, lang)
|
| 268 |
else:
|
| 269 |
# 返回带标注的图像
|
| 270 |
+
try:
|
| 271 |
+
im_show = draw_ocr(pil_img, boxes, txts, scores, font_path=font_path)
|
| 272 |
+
return im_show, "\n".join(txts), LANG_MAP.get(lang, lang)
|
| 273 |
+
except Exception as e:
|
| 274 |
+
print(f"绘制OCR结果时出错: {e}")
|
| 275 |
+
# 如果绘制失败,返回原图和文本
|
| 276 |
+
return pil_img, "\n".join(txts), LANG_MAP.get(lang, lang)
|
| 277 |
|
| 278 |
finally:
|
| 279 |
# 清理临时文件
|