From 73a2fc37b2d783bc59305dce9e5fb75a74635d21 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Tue, 5 Aug 2025 15:18:40 +0800 Subject: [PATCH] =?UTF-8?q?SmartJavaAIOrc=E7=9A=84bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/zhgd/xmgl/call/BaiDuOrcCall.java | 2 +- src/main/java/com/zhgd/xmgl/call/SmartJavaAIOrcCall.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/call/BaiDuOrcCall.java b/src/main/java/com/zhgd/xmgl/call/BaiDuOrcCall.java index e7e617af8..660f94195 100644 --- a/src/main/java/com/zhgd/xmgl/call/BaiDuOrcCall.java +++ b/src/main/java/com/zhgd/xmgl/call/BaiDuOrcCall.java @@ -85,7 +85,7 @@ public class BaiDuOrcCall implements OcrManufacturer { log.info("百度AI 手写文字识别,result:{}", result); OcrResult ocrResult = JSONObject.parseObject(result, OcrResult.class); if (CollUtil.isNotEmpty(ocrResult.getWords_result())) { - return ocrResult.getWords_result().stream().map(OcrResult.WordsResult::getWords).collect(Collectors.joining()); + return ocrResult.getWords_result().stream().map(wordsResult -> wordsResult.getWords()+"\n").collect(Collectors.joining()); } return null; } diff --git a/src/main/java/com/zhgd/xmgl/call/SmartJavaAIOrcCall.java b/src/main/java/com/zhgd/xmgl/call/SmartJavaAIOrcCall.java index 3882c22eb..b0ffa67d1 100644 --- a/src/main/java/com/zhgd/xmgl/call/SmartJavaAIOrcCall.java +++ b/src/main/java/com/zhgd/xmgl/call/SmartJavaAIOrcCall.java @@ -44,7 +44,7 @@ public class SmartJavaAIOrcCall implements OcrManufacturer { public String ocrHandwriting(String base64Img) { try { OcrCommonRecModel recModel = getRecModel(); - OcrInfo ocrInfo = recModel.recognize(Base64.getDecoder().decode(base64Img), new OcrRecOptions()); + OcrInfo ocrInfo = recModel.recognize(Base64.getDecoder().decode(base64Img.contains(",") ? base64Img.substring(base64Img.indexOf(",") + 1) : base64Img), new OcrRecOptions()); log.info("OCR识别结果:{}", JSONObject.toJSONString(ocrInfo)); return ocrInfo != null ? ocrInfo.getFullText() : null; } catch (Exception e) { @@ -63,7 +63,8 @@ public class SmartJavaAIOrcCall implements OcrManufacturer { recModelConfig.setRecModelEnum(CommonRecModelEnum.PP_OCR_V5_MOBILE_REC_MODEL); //指定识别模型位置,需要更改为自己的模型路径(下载地址请查看文档) // recModelConfig.setRecModelPath("/Users/xxx/Documents/develop/model/ocr/PP-OCRv5_mobile_rec_infer/PP-OCRv5_mobile_rec_infer.onnx"); - recModelConfig.setRecModelPath(Fileutils.getExportTemplateFile("models/ocr/PP-OCRv5_mobile_rec_infer.onnx").getAbsolutePath()); + Fileutils.getExportTemplateFile("/models/ocr/dict.txt"); + recModelConfig.setRecModelPath(Fileutils.getExportTemplateFile("/models/ocr/PP-OCRv5_mobile_rec_infer.onnx").getAbsolutePath()); recModelConfig.setDevice(device); recModelConfig.setTextDetModel(getDetectionModel()); return OcrModelFactory.getInstance().getRecModel(recModelConfig); @@ -80,7 +81,7 @@ public class SmartJavaAIOrcCall implements OcrManufacturer { config.setModelEnum(CommonDetModelEnum.PP_OCR_V5_MOBILE_DET_MODEL); //指定模型位置,需要更改为自己的模型路径(下载地址请查看文档) // config.setDetModelPath("/Users/xxx/Documents/develop/model/ocr/PP-OCRv5_mobile_det_infer/PP-OCRv5_mobile_det_infer.onnx"); - config.setDetModelPath(Fileutils.getExportTemplateFile("models/ocr/PP-PP-OCRv5_mobile_det_infer.onnx").getAbsolutePath()); + config.setDetModelPath(Fileutils.getExportTemplateFile("/models/ocr/PP-OCRv5_mobile_det_infer.onnx").getAbsolutePath()); config.setDevice(device); return OcrModelFactory.getInstance().getDetModel(config); }